天道酬勤,学无止境

python爬虫实战,超简单爬取抖音无水印视频

 

目录

                  一、抖音视频分析

二、分析复制的短链接

三、分析返回的数据

四、下载源码

五、运行结果:

 一、抖音视频分析

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:961562169

①、打开抖音app,搜索想要爬取视频的抖音音乐人

②、找到主页右上角三个点

③、点击其中的分享

④、选择其中的复制链接

二、分析复制的短链接

①浏览器打开复制的链接

  • 发现短连接被还原成了原始链接
  • 暂时我们不知道需要下载视频需要的是什么参数,后期通过分析知道只需要sec_uid这个参数即可
  • pc端打开会出现样式问题,我们选择移动端打开,模拟手机环境
  • 因此,爬虫也需要模拟移动端环境进行请求

②、使用移动端打开

③、浏览器抓包

  • 点击作品和喜欢,可以抓包到请求的链接,这个我们稍后分析
  • 因为现在抖音app有隐藏自己收藏的功能,所以如果用户设置了隐藏,你将无法下载用户收藏的视频哦

④、分析请求链接

  • 通过抓包我们知道
  • 用户上传的数据链接为:https://www.iesdouyin.com/web/api/v2/aweme/post/?sec_uid=MS4wLjABAAAAYSkDWl4l-zUBPSEtsuxKHbgy5uIcwokC-OpwJrzOPmU&count=21&max_cursor=0&aid=1128&_signature=Bth1lgAAWa-w6IbGQlE-1gbYdY&dytk=
  • 用户收藏的数据链接为:https://www.iesdouyin.com/web/api/v2/aweme/like/?sec_uid=MS4wLjABAAAAYSkDWl4l-zUBPSEtsuxKHbgy5uIcwokC-OpwJrzOPmU&count=21&max_cursor=0&aid=1128&_signature=Bth1lgAAWa-w6IbGQlE-1gbYdY&dytk=
  • 请求结果如下,因抖音的检测机制,你需要刷很多次才有数据,这个我们通过循环判断aweme_list中是否有数据即可

  • 多次刷新后的结果如下

三、分析返回的数据

①看整体数据,将数组折叠先

  • status_code: 不用说,肯定是返回状态
  • aweme_list: 存放视频信息的数组,等会具体分析
  • max_cursor/min_cursor: 这个盲猜都知道用来分页的指针,如果是多页,且请求的不是第一页,需要传其中的某个值,这个暂时不讨论
  • has_more: 是否有多页
  • extra: 额外的信息,当前请求的毫秒级时间戳,以及logid,这个不重要,抖音那边用来日志记录的

②、分析视频信息

  • 可以看出每个视频有两个链接,自己访问一下就知道,一个链接是用户上传的原视频,另一个是抖音那边加了水印的视频
  • 其实到这里大家都知道无水印视频如何下载了,不必赘述了

四、下载源码

  • 其实通过分析,抖音下载只需要拿到sec_uid这个参数即可
  • 浏览器打开分享的短连接,就能看到地址栏这个参数
#!/usr/bin/env python
# encoding: utf-8
'''
#-------------------------------------------------------------------
#                   CONFIDENTIAL --- CUSTOM STUDIOS                      
#-------------------------------------------------------------------
#                                                                   
#                   @Project Name : 抖音下载小助手
#                                                                   
#                   @File Name    : main.py                      
#                                                                   
#                   @Programmer   : Felix                           
#                                                                     
#                   @Start Date   : 2020/7/30 14:42                 
#                                                                   
#                   @Last Update  : 2020/7/30 14:42                 
#                                                                   
#-------------------------------------------------------------------
'''
import os, sys, requests
import json, re, time
from retrying import retry
from contextlib import closing
 
class DouYin:
    '''
     This is a main Class, the file contains all documents.
     One document contains paragraphs that have several sentences
     It loads the original file and converts the original file to new content
     Then the new content will be saved by this class
    '''
    def __init__(self):
        '''
        Initial the custom file by some url
        '''
        self.headers = {
            'accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9',
            'accept-language': 'zh-CN,zh;q=0.9,en;q=0.8',
            'pragma': 'no-cache',
            'cache-control': 'no-cache',
            'upgrade-insecure-requests': '1',
            'User-Agent': 'Mozilla/5.0 (iPhone; CPU iPhone OS 13_2_3 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0.3 Mobile/15E148 Safari/604.1',
        }
 
    def hello(self):
        '''
        This is welcome speech
        :return: self
        '''
        print("*" * 50)
        print(' ' * 15 + '抖音下载小助手')
        print(' ' * 5 + '作者: Felix  Date: 2020-05-20 13:14')
        print(' ' * 15 + '无水印 | 有水印')
        print(' ' * 12 + '输入用户的sec_uid即可')
        print(' ' * 2 + '用浏览器打开用户分享链接,复制参数中sec_uid')
        print("*" * 50)
        return self
 
    def get_video_urls(self, sec_uid, type_flag='p'):
        '''
        Get the video link of user
        :param type_flag: the type of video
        :return: nickname, video_list
        '''
        user_url_prefix = 'https://www.iesdouyin.com/web/api/v2/aweme/post' if type_flag == 'p' else 'https://www.iesdouyin.com/web/api/v2/aweme/like'
        print('---解析视频链接中...\r')
 
        i = 0
        result = []
        while result == []:
            i = i + 1
            print('---正在第 {} 次尝试...\r'.format(str(i)))
            user_url = user_url_prefix + '/?sec_uid=%s&count=2000' % (sec_uid)
            response = self.get_request(user_url)
            html = json.loads(response.content.decode())
            if html['aweme_list'] != []:
                result = html['aweme_list']
 
        nickname = None
        video_list = []
        for item in result:
            if nickname is None:
                nickname = item['author']['nickname'] if re.sub(r'[\/:*?"<>|]', '', item['author']['nickname']) else None
 
            video_list.append({
                'desc': re.sub(r'[\/:*?"<>|]', '', item['desc']) if item['desc'] else '无标题' + str(int(time.time())),
                'url': item['video']['play_addr']['url_list'][0]
            })
        return nickname, video_list
 
    def get_download_url(self, video_url, watermark_flag):
        '''
        Whether to download watermarked videos
        :param video_url: the url of video
        :param watermark_flag: the type of video
        :return: the url of o
        '''
        if watermark_flag == True:
            download_url = video_url.replace('api.amemv.com', 'aweme.snssdk.com')
        else:
            download_url = video_url.replace('aweme.snssdk.com', 'api.amemv.com')
 
        return download_url
 
    def video_downloader(self, video_url, video_name, watermark_flag=False):
        '''
        Download the video
        :param video_url: the url of video
        :param video_name: the name of video
        :param watermark_flag: the flag of video
        :return: None
        '''
        size = 0
        video_url = self.get_download_url(video_url, watermark_flag=watermark_flag)
        with closing(requests.get(video_url, headers=self.headers, stream=True)) as response:
            chunk_size = 1024
            content_size = int(response.headers['content-length'])
            if response.status_code == 200:
                sys.stdout.write('----[文件大小]:%0.2f MB\n' % (content_size / chunk_size / 1024))
 
                with open(video_name + '.mp4', 'wb') as file:
                    for data in response.iter_content(chunk_size=chunk_size):
                        file.write(data)
                        size += len(data)
                        file.flush()
 
                        sys.stdout.write('----[下载进度]:%.2f%%' % float(size / content_size * 100) + '\r')
                        sys.stdout.flush()
 
    @retry(stop_max_attempt_number=3)
    def get_request(self, url, params=None):
        '''
        Send a get request
        :param url: the url of request
        :param params: the params of request
        :return: the result of request
        '''
        if params is None:
            params = {}
        response = requests.get(url, params=params, headers=self.headers, timeout=10)
        assert response.status_code == 200
        return response
 
    @retry(stop_max_attempt_number=3)
    def post_request(self, url, data=None):
        '''
        Send a post request
        :param url: the url of request
        :param data: the params of request
        :return: the result of request
        '''
        if data is None:
            data = {}
        response = requests.post(url, data=data, headers=self.headers, timeout=10)
        assert response.status_code == 200
        return response
 
    def run(self):
        '''
        Program entry
        '''
        sec_uid = input('请输入用户sec_uid:')
        sec_uid = sec_uid if sec_uid else 'MS4wLjABAAAAle_oORaZCgYlB84cLTKSqRFvDgGmgrJsS6n3TfwxonM'
 
        watermark_flag = input('是否下载带水印的视频 (0-否(默认), 1-是):')
        watermark_flag = bool(int(watermark_flag)) if watermark_flag else 0
 
        type_flag = input('p-上传的(默认), l-收藏的:')
        type_flag = type_flag if type_flag else 'p'
 
        save_dir = input('保存路径 (默认"./Download/"):')
        save_dir = save_dir if save_dir else "./Download/"
 
        nickname, video_list = self.get_video_urls(sec_uid, type_flag)
        nickname_dir = os.path.join(save_dir, nickname)
 
        if not os.path.exists(nickname_dir):
            os.makedirs(nickname_dir)
 
        if type_flag == 'f':
            if 'favorite' not in os.listdir(nickname_dir):
                os.mkdir(os.path.join(nickname_dir, 'favorite'))
 
        print('---视频下载中: 共有%d个作品...\r' % len(video_list))
 
        for num in range(len(video_list)):
            print('---正在解析第%d个视频链接 [%s] 中,请稍后...\n' % (num + 1, video_list[num]['desc']))
 
            video_path = os.path.join(nickname_dir, video_list[num]['desc']) if type_flag != 'f' else os.path.join(nickname_dir, 'favorite', video_list[num]['desc'])
            if os.path.isfile(video_path):
                print('---视频已存在...\r')
            else:
                self.video_downloader(video_list[num]['url'], video_path, watermark_flag)
            print('\n')
        print('---下载完成...\r')
 
if __name__ == "__main__":
    DouYin().hello().run()

五、运行结果:

  • 其中重试的次数,就是在连续请求那个数据连接,直达list中有数据

  • 可以发现已经可以正常下载了

 

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • python爬虫实战—超简单爬取抖音无水印视频,程序猿如果想火就是这么简单
    〝 古人学问遗无力,少壮功夫老始成 〞 python爬虫实战超简单爬取抖音无水印视频,程序猿如果想火就是这么简单,常码字不易,出精品更难,没有特别幸运,那么请先特别努力,别因为懒惰而失败,还矫情地将原因归于自己倒霉。你必须特别努力,才能显得毫不费力。如果这篇文章能给你带来一点帮助,希望给飞兔小哥哥一键三连,表示支持,谢谢各位小伙伴们,因为抖音那边更新版本的速度还挺快,不能保证这个博文一直能用,但是爬虫思想不会变,只要学会了思想,无论怎么变,相信你都能解决的。 目录 一、抖音视频分析 二、分析复制的短链接 三、分析返回的数据 四、下载源码 五、运行结果 一、抖音视频分析 ①、打开抖音app,搜索想要爬取视频的抖音音乐人 ②、找到主页右上角三个点 ③、点击其中的分享 ④、选择其中的复制链接 二、分析复制的短链接 ①浏览器打开复制的链接 发现短连接被还原成了原始链接暂时我们不知道需要下载视频需要的是什么参数,后期通过分析知道只需要sec_uid这个参数即可pc端打开会出现样式问题,我们选择移动端打开,模拟手机环境因此,爬虫也需要模拟移动端环境进行请求 ②、使用移动端打开 ③、浏览器抓包 点击作品和喜欢,可以抓包到请求的链接,这个我们稍后分析因为现在抖音app有隐藏自己收藏的功能,所以如果用户设置了隐藏,你将无法下载用户收藏的视频哦 ④、分析请求链接 通过抓包我们知道用户上传的数据链接为
  • Python批量爬取抖音/快手/B站视频(附源码和exe)
    前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:行哥 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 进行批量下载抖音/快手等网站的视频,如果手动输入代码下载不是很方便。所以行哥希望先把要下载的视频地址统一放到一个txt文件里,之后再通过这个txt文件进行批量下载 1.Python代码详解 2.exe直接使用版本 1.Python代码详解 首先这个项目通过Python爬虫,返回一定格式的信息,并使用flask提供简易api进行下载。可下载各平台的视频、音乐和封面图片,只要有链接地址,它就能下载。具体可下载的平台和素材: 核心代码如下,先读出txt文件里的内容并提取出其中的所有网址,之后进行解析生成对应的视频、音乐和图片下载地址,最后将地址里的内容进行下载,同时使用了多线程加快代码的批量下载速度 path = "./爬取抖音/批量下载链接.txt" with open(path, 'r') as f: what = f.read() for i in "1": urls = parse_urls(what) if not urls: print("bye~") break print(f""" ╭━━━━━━━━━━━━━╮ │
  • 爬虫项目实战三:爬取抖音短视频
    爬取抖音网页版短视频 目标项目准备网站分析反爬分析每一页的链接分析代码实现效果显示 目标 爬取抖音短视频,批量下载到本地。 项目准备 软件:Pycharm 第三方库:requests,fake_useragent,re 网站地址:http://douyin.bm8.com.cn/d_1.html 网站分析 打开网站。 首先判断是静态加载或者动态加载。 鼠标向下拉动,发现滑到底部出现页码之类的,初步判定为静态加载。 Ctrl+U查看源代码,Ctrl+F调出搜索框,输入一些网页上出现的文字。 可以找到,最终判定为静态加载类型。 反爬分析 同一个ip地址去多次访问会面临被封掉的风险,这里采用fake_useragent,产生随机的User-Agent请求头进行访问。 每一页的链接分析 第一页链接:http://douyin.bm8.com.cn/d_1.html 第二页链接:http://douyin.bm8.com.cn/d_2.html 第三页链接:http://douyin.bm8.com.cn/d_3.html 可以发现规律,就是每页的数字在变化。 代码实现 1.导入相对应的第三方库,定义一个class类继承object,定义init方法继承self,主函数main继承self。 import requests from fake_useragent import
  • Python爬取抖音APP短视频数据(无水印的哟)
    前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于塘主软件汇 ,作者一杯仙气 转载地址 https://mp.weixin.qq.com/s?src=11×tamp=1602738722&ver=2645&signature=dT9PJpwX3kudI7A*l9pExzDmsrRIx927P4XOIR1K2StCr1w3HfiyBW9ODeawmkoscj1RaPPgI9o5OQzekNEgxuBYZdwfMlCTzITmY7u1WlGccXaBPOmPCMo9UfTmVmqa&new=1 注意:因为抖音更新版本速度比较快,不能保证这篇文章一直能用,但是爬虫思想不会变,只要学会了思想,无论怎么变,相信你都能解决的 一、抖音视频分析 ①. 打开抖音app,搜索想要爬取视频的抖音音乐人 ②. 找到主页右上角三个点 ③. 点击其中的分享 ④. 选择其中的复制链接 二、分析复制的短链接 ①浏览器打开复制的链接 发现短连接被还原成了原始链接 暂时我们不知道需要下载视频需要的是什么参数,后期通过分析知道只需要sec_uid这个参数即可 pc端打开会出现样式问题,我们选择移动端打开,模拟手机环境 因此,爬虫也需要模拟移动端环境进行请求 ②使用移动端打开 ③浏览器抓包 点击作品和喜欢,可以抓包到请求的链接
  • 抖音无水印视频爬虫(一)——踩坑
    Hello,好久没写博客啦! 今天刷抖音,刷到了一个抖音up的视频正好能用于我之前发现的文字识别神器pytesseract。这位douyiner就是: 想要考雅思或者有兴趣的同学可以去关注下hhh。 可以看到这位douyiner上传的视频都是配有英文字幕的,所以在把视频爬下来后可以进行抽帧然后在进行文字识别,然后再将识别出来的文字进行处理。大概的想法就是这样啦,今天摸索了一天总于可以将他的视频下载下来保存到本地啦。对今天所做的事进行一个总结吧。 一、踩坑 其实之前也想过爬抖音的视频,但总感觉还差点意思,抖音的视频爬虫已经一大堆了,甚至还有加了人脸识别打分的抖音小姐姐视频爬虫。我再做类似的感觉没啥意思。由于是移动端软件的爬虫,一开始想用Charles代理然后爬。好不容易配置好Charles,打开抖音竟然报没有网络连接(用浏览器是可以正常上网冲浪的),这时就意识到了抖音技术可定也意识到了这种方法。(原谅我废话多,我比较无聊)第一时间想的是换一个抓包软件例如Fiddler,上网查发现Fiddler也不可以。Ok,这时候以为本次计划要失败了,突然想到抖音视频是可以以链接分享的。然后就试着用PC的Chrome打开分享链接,竟然可以打开,然后我又在想既然视频可以通过链接分享,这个douyiner是不是也可以嘞?然后试了一下发现还真可以!!上图的内容就是在PC端的Chrome打开的。
  • 爬取抖音数据实践方案《基础版》
    背景: 现在移动短视频大火,很多的内容消费都在手机的客户端上进行。为了监控类似抖音短视频平台上的风险数据(主要是视频标题、视频内容、评论区),采用爬虫技术手段来实时爬取内容。 技术方案: python(脚本程序)+mitmproxy(代理服务器)+appium(自动化工具) 原理: 采用抓包的方式,通过设置代理服务器、以及设置https证书,让所有的http、https的请求和响应全部通过这个代理服务器来转发,然后利用脚本对转发的数据进行处理。 和fiddler、Charles等抓包工具对比,mitmproxy最大的优势是它提供了python脚本的对接入口,可以利用python来处理爬取到的数据。例如:下载视频文件,存储关键信息到我们自己的DB上等。 实现爬取抖音视频及标题数据 第一步:安装环境及工具 安装python环境 www.python.org/downloads/ 安装mitmproxy代理工具 mitmproxy.org/ 安装appium自动化工具(目前没用到) 略 第二步:设置代理相关 (为支持https请求需安装证书) 1.安装完mitmproxy后,会在如下目录生成证书文件。 2.安装mitmproxy的pc证书 双击mitmproxy-ca.p12证书进行安装,弹出如下窗口: 点击下一步,如下: 点击下一步,如下: 点击下一步,如下:(注意这里密码默认为空)
  • python抓取抖音评论_python实现模拟器爬取抖音评论数据的示例代码
    目标: 由于之前和朋友聊到抖音评论的爬虫,demo做出来之后一直没整理,最近时间充裕后,在这里做个笔记。 提示:大体思路 通过fiddle + app模拟器进行抖音抓包,使用python进行数据整理 安装需要的工具: 抖音部分: 模拟器下载好之后, 打开模拟器 在应用市场下载抖音 对抖音进行fiddle配置,配置成功后就可以当手机一样使用了 一、工具配置及抓包: 我们随便打开一个视频之后,fiddle就会刷新新的数据包 在json中找到视频地址: 二、fiddler中添加下载视频评论代码 在fiddler中添加下载视频代码:注意两点: (1)get后面的路径要随时看进行更换 (2)下载的路径要在fiddler下面自己新建 if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } if (oSession.uriContains("https://aweme.snssdk.com/aweme/v1/general/search/single/")){ var strBody=oSession.GetResponseBodyAsString(); var sps = oSession.PathAndQuery.slice(-58,); //FiddlerObject.alert
  • Python爬取抖音APP热点榜数据
    本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 以下文章来源于IT共享之家 ,作者IT共享者 Python爬虫、数据分析、网站开发等案例教程视频免费在线观看 https://space.bilibili.com/523606542 今天给大家分享一篇简单的安卓app数据分析及抓取方法。以抖音 为例,我们想要抓取抖音的热点榜数据。 要知道,这个数据是没有网页版的,只能从手机端下手。 首先我们要安装charles抓包APP数据,它是一款收费的抓包修改工具,易上手,数据请求容易控制,修改简单,抓取数据的开始暂停方便等优势,网上也有汉化版,下载地址为http://www.zdfans.com/html/42074.html,一路默认安装就ok了。 安装完成后要设置代理,依次点击代理——代理设置。 然后在手机端设置代理,如下图所示: 在保证手机和电脑在同一局域网的情况下,代理服务器主机名设为电脑的ip地址,端口设为8888。 最后在电脑端和手机端分别安装证书。 电脑端安装方法:依次点击帮助——ssl代理——安装charles root证书 ,按下图进行安装。 手机端安装方式:帮助——ssl代理——在移动设备或远程浏览器上安装charles root证书。 再在模拟器浏览器中输入chls.pro/ssl,会自动下载手机端证¹
  • 用python爬取抖音app视频
    编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思路: 假设已经配置好我们所需要的工具 1、使用mitmproxy对手机app抓包获取我们想要的内容 2、利用appium自动化测试工具,驱动app模拟人的动作(滑动、点击等) 3、将1和2相结合达到自动化爬虫的效果 一、mitmproxy/mitmdump抓包 确保已经安装好了mitmproxy,并且手机和PC处于同一个局域网下,同时也配置好了mitmproxy的CA证书,网上有很多相关的配置教程,这里我就略过了。 因为mitmproxy不支持windows系统,所以这里用的是它的组件之一mitmdump,它是mitmproxy的命令行接口,可以利用它对接我们的Python脚本,用Python实现监听后的处理。 在配置好mitmproxy之后,在控制台上输入mitmdump并在手机上打开抖音app,mitmdump会呈现手机上的所有请求,如下图 可以在抖音app一直往下滑,看mitmdump所展示的请求,会发现前缀分别为 http://v1-dy.ixigua.com/;http://v3-dy.ixigua.com/;http://v9-dy.ixigua.com/ 这3个类型前缀的url正是我们的目标抖音视频url。
  • 抖音爬虫,爬视频、爬热门、爬评论列表、爬粉丝列表、爬关注列表等(python爬虫)
    最近在学习爬虫技术,就用抖音练了一下手,发现抖音爬虫并不是那么难,主要还是签名算法花了我一点时间,只要能搞定签名,要爬取哪些数据基本就迎刃而解了。 至于签名算法的实现,网上有很多文章,大家如果要自己实现,可以多找找看,不过作者并不公开签名算法,毕竟这是核心嘛。看到网上有通过抓包工具来爬取的方式,这种方式只适合玩玩,不能批量、连续爬取抖音数据。目前本人已经实现的数据类型有以下这些: 另外需要说明一点的是,数据爬取的量不能太大,如果量很大的话,需要自己弄一个代理,否则可能被抖音识别到,导致数据爬不下来,怎么加代理,网上教程一大堆,自己学吧!! 挂几张爬取后数据呈现的图片,数据很多,要使用哪些数据自行选用: 1、作品: 2、user list 3、user fans 说明一点,不要用于商业用途!!!! 来源:https://blog.csdn.net/nanxiaotiantian/article/details/104645927
  • java写的抖音爬虫,爬取抖音的在线主播数据
    用java写的爬虫,x-gorgon算法,STUB算法,老实说,要获取这个,那也是相当困难的。 好在已经实现,具体使用参考这篇文章:https://blog.csdn.net/lb87626/article/details/105928940 爬虫技术,知名的谷歌,百度,都是最大的爬虫,创造了可观的财富,不容小觑。 实现这个爬虫有两个难点,一是x-gorgon的获取,二是STUB的获取,x-gorgon是最重要的。 然后下载了一万多个用户头像,也不知道这些头像图片有什么价值。就留着以后做人工智能时是数据资源吧。当以后开发些智能程序的时候,全部转成python。 先来GET数据,抓的是在线的直播信息。 第一步就是,抓包了。 获得自己需要的信息,其中x-Gorgon是变化的。 第二步,就是编写程序,我这里用的是java。部分代码。 第三步,将抓取的数据保存到数据库。 朋友想要的是主播的房间号和抖音号,问他干啥也不说,就懵懵懂懂说是用了抢红包,我猜难道是抢主播打赏时用的红包,然后用了个什么抢红包工具?然后还叫我给他做个接口,其实就是叫我做个网址,可以生成个txt文档。既然用了java,那么索性全部用java,tomcat,servlet轻松解决他的需求。这些数据可以每隔一段时间自动更新一次。 后来也不知道咋整的,索性把这些主播的头像也下载了下来。 其实也就用了一点点代码
  • 厉害了!14行Python代码即可去除抖音水印
    自从大数据火了,学习Python的人也出现了爆发式的增长。身边的小伙伴们纷纷加入了Python大营,无论是在互联网做开发项目的,还是在公司做财务报表的,各行各业各岗位都在努力学习Python。 因为Python有很多非常强大的数据处理、数据分析方面的库,同时又是全平台兼容,因此Python成了大家眼里的香饽饽! 其实Python学起来非常容易,而且还能Get很多好玩的技能! Python爬取抖音上的小姐姐 有时候我们在刷抖音的时候看到好看的小姐姐,想要下载下来方便以后欣赏,但是每次都需要在抖音里面寻找好久才能下载而且还都是带有水印,非常不方便。现在如果掌握了Python,就可以自动下载这个小姐姐的抖音视频,而且还都是高清无水印版本的呢!这里需要用到mitmproxy这个抓包软件,配置好手机代理后打开抖音。这时我们可以发现,所有的视频都存在 ixigua.com这个网址里。 通过查看拦截到的数据可以发现,我们刷到的每一个视频都是一个返回类型为video/mp4的数据包。首先Python实时拦截手机刷抖音时的数据,然后从中筛选出域名为*.ixigua.com且返回类型为video/mp4的请求包,下载该请求包的数据。再指定一个本地存储地址,配置完成后运行Python程序即可自动下载抖音视频。 只需要14行代码,配合一个数据监听工具mitmproxy就可以完成这一酷炫操作
  • python爬取抖音短视频详细教程(附带源码)
    前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:merlin& PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 抖音爬虫制作 选定网页 想要爬取抖音上面的视频,就要先找到可以刷小视频的地址,于是我就开始在网上寻找网页版的抖音。经过一番寻找,发现抖音根本就没有网页版的这个板块,打开的网页大多都是如下图所示提示你下载app的网页: 想要爬取小视频的内容,没有网页地址可不行。于是我又想到了另一种寻找网页的方法: 首先我打开了手机抖音,选定了一个喜欢的抖音号,使用复制链接的方法来尝试是否可以在网页中打开: 将链接粘贴到记事本中,发现它是长这个样子的 https://v.douyin.com/wGf4e1/ 将这个网址在浏览器中打开,发现这个网址可以正常显示 向下滑动,也可以看到这个账号发布的视频 ok,到现在为止,我已经选定了将这个页面作为我获取数据的起始页面 选定起始页之后,我的下一步想法是要去获取这些小视频的单独的网页地址,于是我又点击了下面的这些小视频。这里恶心的地方出现了,无论我点击哪一个小视频,弹出来的都是强迫你下载app的界面 于是我又想尝试上面获取到网页的操作来获取视频的地址,再次打开手机上的抖音
  • 用PHP如何实现解析抖音无水印视频
    很多时候你在douyin里看到了一个短视频,想复制下来自己编辑文字来发布,可是视频里的水印却是原者的。这个时候你想把水印去掉,你要如何做呢?这里提供PHP实现去除水印的主要方法,其实很简单。 使用方法: 在php后加上 ?url= 抖音的url 。 点击跳转后的网页一个是标题 一个是视频无水印的链接。 下面来看看具体的源码操作方法 <?php header("Content-Type: text/json;charset=utf-8"); $url=$_GET["url"]; $UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)'; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_HEADER, 0); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER
  • python 批量爬取抖音视频(需要电脑和安卓手机)
    python 批量爬取抖音视频(需要电脑和安卓手机) 一、前言二、准备工作三、电脑控制手机操作获取分享链接 一、前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 本文记录了使用python和电脑输入手机ADB指令模拟的方式来爬取抖音特定用户视频,这种方式采用模拟真实的浏览抖音的方式,不容易被封禁,后期还根据需要加入了视频的点赞数,评论数,转发数和发布日期的爬取。 最后感谢: 爬取抖音短视频改良版 Python爬虫—爬取抖音短视频 抖音批量下载程序 抖音视频下载小助手 Github 二、准备工作 手机需要下载安装的app:特定版本抖音短视频V10.9.0,ATX,clipper(安卓10及以上); 下载链接:手机需要安装的app下载 ,提取密码:3dsv电脑下载配置文件及原代码, 提取密码:ts2q 注:配置和代码文件位置请保持原样手机设置:打开开发者选项–>USB调试,手机通过数据线连接电脑,选择-仅限充电。详细设置见抖音批量下载程序 连接成功测试: 打开命令窗口 然后cd 到你电脑下载的配置文件的目录输入adb devices(第一次通常都是unauthorized),手机有弹窗需要全部点击确定或允许,出现下面结果表示成功了。 (如不能连接成功,可以电脑下载360手机助手帮助连接,360手机助手连接成功
  • 抖音快手等短视频网页在线去水印下载合集
    大家不管是在抖音,快手还是其他类似的短视频APP上面看到喜欢的视频,想要下载保存到手机或电脑上,总有一个烦心事,那就是视频都带有一个大大的水印,看起来很别扭,甚至有些视频的关键部分都被水印挡住了。 那么有没有办法去掉这些水印呢? 有!用视频去水印软件去掉就行了,但是过程繁琐,并且处理之后的视频效果也不怎么好。 那么有没有更好的办法呢? 有!直接解析无水印版本的视频就好了,这样下载下来的视频就是原版视频,没有水印哦! 给大家整理一些支持无水印解析,在线下载的网站,支持市面上大部分短视频APP,包括但不限于快手、抖音、秒拍、火山、西瓜视频、微博视频、小咖秀、映客、网易云音乐、晃咖、musical.ly、今日头条、微视、美拍、Flipagram、陌陌、小影、阳光宽频等等,感觉自己用得着的就收藏吧。 快手无水印下载:https://kuaishou.video996.com/ 快手备用1:https://dy.kukutool.com/kuaishou 快手备用2(需要登录账号):http://www.dspjx.com/ 抖音无水印下载:https://douyin.video996.com/ 且用且珍惜吧,皮皮虾微视等多平台都支持,非常方便。 抖音无水印下载2:http://jx.lhhz.net/ 抖音备用1:http://nopapp.com/Home/DouYin 抖音备用2
  • 抖音uid用户信息采集爬取案例
    第一次发帖混脸熟,一前好几个号都没玩被清除了,最近在学习python爬虫,想采集爬取抖音用户信息,因为看到相关爬虫岗位有这个需求,突发奇想,分享一下经验,顺便整理自己的思路。首先是看到b站不二小段的爬虫视频,头脑王者的外挂,通过修改fidder函数把头脑王者的json数据包保存本地,用python脚本循环读取数据包,然后自动打开浏览器搜索题目。现在我就想把这个思路扩展一下到抖音这里来。 首先安装最新的fidder,抖音用户的数据包传输协议是https。需要下载fidder的证书,安装到手机或者安卓模拟器。我用的模拟器,然后设置安卓的模拟器的代{过}{滤}理IP设置为电脑的IP,现在模拟器所有的网络请求都被fidder获取了,现在我们就是要抓取数据包,分析数据包,推荐一个分析json包的网址,能把很复杂难懂的数据节展现的很清晰,在模拟器刷抖音的时候json数据包,我就一个个的把它复制出来看下,网址在图片中 fidder函数的保存到本地的数据只能覆盖,不能添加,所以只能用脚本循环读取了,所以用python写个脚本吧,把读出来的数据解析一下,保存到本地数据库。 现在就差最后一步写一个模拟人工划抖音的脚本了,既然用模拟器的话,想要多开几个,数据就会保存的更快那就用最小的分辨率写一个吧 320*480的分辨率,节约资源,抓取用户的信息要进入个人主页。思路是在抖音里面往上划
  • python+模拟器爬取抖音评论数据
    目标: 由于之前和朋友聊到抖音评论的爬虫,demo做出来之后一直没整理,最近时间充裕后,在这里做个笔记。 提示:大体思路 通过fiddle + app模拟器进行抖音抓包,使用python进行数据整理 安装需要的工具: python3 下载 fiddle 安装及配置 手机模拟器下载 抖音部分: 模拟器下载好之后, 打开模拟器 在应用市场下载抖音 对抖音进行fiddle配置,配置成功后就可以当手机一样使用了 一、工具配置及抓包: 我们随便打开一个视频之后,fiddle就会刷新新的数据包 在json中找到视频地址: 二、fiddler中添加下载视频评论代码 在fiddler中添加下载视频代码:注意两点: (1)get后面的路径要随时看进行更换 (2)下载的路径要在fiddler下面自己新建 if (m_Hide304s && oSession.responseCode == 304) { oSession["ui-hide"] = "true"; } if (oSession.uriContains("https://aweme.snssdk.com/aweme/v1/general/search/single/")){ var strBody=oSession.GetResponseBodyAsString(); var sps = oSession.PathAndQuery
  • 短视频解析,去水印原理整理汇总
    这里整理汇总关于短视频去水印解析的技术文章 抖音 (新)最新抖音无水印解析原理再分析过程,柳暗花明又一村 - 2019-10-12 14:22:59抖音反编译:android反编译之最新版本抖音(v7.7.0)安卓版反编译教程 - 2019-08-22 12:01:44最新抖音视频无水印解析-播放地址及下载 - 2019-08-09 10:00:18最新抖音视频无水印解析接口-频率限制 - 2019-08-09 09:05:21最新抖音视频无水印解析接口及原理 - 2019-08-08 14:20:27 B站 (新)B站视频播放源地址获取及B站视频下载 - 2019-10-13 09:25:09Bilibili,B站视频缩略图快速预览实现再分析 - Bilibili,B站视频缩略图快速预览实现再分析bilibili ,B站视频预览缩略图实现分析 - 2019-06-01 00:02:15Bilibili播放-获取B站播放视频源地址的过程 - 2019-04-19 10:27:34分析一个bilibili Android端请求视频源地址的包 - 2019-04-18 17:19:54 火山 火山视频去水印,无水印视频解析原理及实现 - 2019-10-17 18:49:39Python:火山小视频-无水印视频-多线程-实现和完整代码 - 2019-04-20 16:25:59 微视
  • 短视频解析技术原理,去水印原理分析整理汇总
    短视频解析技术原理,去水印原理分析整理汇总 抖音皮皮虾B站火山微视趣头条UC微博严正声明:以下文章仅限于学习交流,请勿用于其他用途 抖音 (新)最新抖音无水印解析原理再分析过程,柳暗花明又一村 - 2019-10-30 皮皮虾 实战PHP皮皮虾去水印解析接口 皮皮虾视频抓包去水印教程原理 B站 火山 微视 趣头条 UC 微博 严正声明:以下文章仅限于学习交流,请勿用于其他用途 如果你对这方面有兴趣,可以入群交流 621400207 来源:https://blog.csdn.net/u011367482/article/details/105307515