python爬虫抖某音爬取视频 Airtest+fiddler
所用到的模块和库 : python3+reqeuests+Airtest+fiddler
Airtest : (app自动化软,类似Appium,网易家的本人很喜欢)
1.首先环境的配置 Fiddler 和Airtest
fiddler可以设定抓取包的链接,并自动保存到设定的txt文件中
#在配置好手机证书,以及可以抓到手机包的情况下,再看下面步骤----配置fiddler环境:https://jingyan.baidu.com/article/1876c8524581d9890b1376a5.html
手机抓包证书教程:https://www.jianshu.com/p/724097741bdf
弄好之后,打开抖音,可以看到一堆抖音的包的话,就说明可以了,
接着来下面操作,设置抓包规则并自动保存 由于截图不好截,就手机拍了= =图片不好勿打
打开后按ctrl+f 搜素 OnBeforeRequest 找到这个方法
将下面代码插入fiddler OnBeforeRequest 方法中
//保存到本地添加开始//这是抖音的地址 设定视频包的链接名if (oSession.fullUrl.Contains("v1-dy.bytecdn.cn")||oSession.fullUrl.Contains("v3-dy-y.bytecdn.cn")||oSession.fullUrl.Contains("v3-dy.z.bytecdn.cn")||oSession.fullUrl.Contains("v5-dy.bytecdn.cn")||oSession.fullUrl.Contains("v6-dy.bytecdn.cn") ||oSession.fullUrl.Contains("v9-dy-z.bytecdn.cn") ||oSession.fullUrl.Contains("v9-dy.bytecdn.cn")){var fso;var file;fso = new ActiveXObject("Scripting.FileSystemObject");//文件保存路径,可自定义 自动保存的txt文档地址file = fso.OpenTextFile("E:\\url_bt\\douyin.txt",8,true);//file.writeLine("Request-url:" + oSession.url);file.writeLine("http://"+oSession.url)//file.writeLine("Request-host:" + oSession.host);//file.writeLine("Request-header:" + "\n" + oSession.oRequest.headers);//file.writeLine("Request-body:" + oSession.GetRequestBodyAsString());//file.writeLine("\n");file.close();} //保存到本地添加结束
将上面的代码插入后打开抖音刷一刷,然后去自动保存的地址查询是否有相应的txt文档,如果没有,查看fiddler对应视频包名是否有修改
效果---这些链接可以在浏览器打开,但是可能看不到视频,那是浏览器不支持,这个无影响,
!!!这些地址是有有效期的。。目测是大概1-2小时吧
那么问题来了。。如何自动模拟人的滑动来获取到这些链接----华丽丽的Airtest登场(没有接触过手机自动化软件的可以先去入门了,入门后再回来查看,有appium的童鞋可以接着看)
Airetest 基本操作教程:https://segmentfault.com/a/1190000017982620?utm_source=tag-newest
Airtest是支持python代码操作的, 需要对应的库 :pocoui pip install pocoui
安装好之后,写入自动滑动抖音的视频来截取链接-----当然可以截取 推荐,同城,搜索,榜单的一些视频包,只需要打开相应的视频界面滑动
以下是我写的自动上滑,拉动视频的代码--如果不适用,建议在Airtest上自己写好copy到python代码中就欧克
__author__ = "xiaojun"from airtest.core.api import *auto_setup(__file__)from poco.drivers.android.uiautomation import AndroidUiautomationPocopoco = AndroidUiautomationPoco(use_airtest_input=True, screenshot_each_action=False) #模拟滑动 def douyin_spwipe():#无限循环向上滑动while True:#坐标,以及速度poco.swipe([0.5,0.8],[0.5,0.3],duration=0.2)sleep(3)
那么有了视频的链接。。。剩下的就是写一个python代码获取这些链接并请求写入mp4视频文件中了
!!!注意视频链接是有 有效期的 大概1-2小时吧,所以建议是,一边滑动获取链接,一边写入生成链接
下面是python获取链接,和写入mp4的代码。。。如有不合适,请自行修改调试代码
获取和生成两个方法可以 同时进行, 多线程,多个文件,多个进程随意 生成视频后清空txt文件,休眠十几分钟让滑动程序,继续截图视频包链接
import os import requests import sysimport time from fake_useragent import UserAgentheaders = {'User-Agent':UserAgent().chrome } #去重 def distinct_data():datalist_blank = []with open(r'E:\url_bt\douyin.txt','r') as f:#读取所有行,生成列表f_data_list = f.readlines()print(f_data_list)for url in f_data_list:if len(url)>40:datalist_blank.append(url.strip()) #去掉\n strip去掉头尾默认空格或换行符# print(url.strip()) f.close()# print(len(datalist_blank), datalist_blank)# print(len(set(datalist_blank)), set(datalist_blank))#去重后的列表urldatalist_blank= list(set(datalist_blank))return datalist_blank#写入文件夹 def responsedouyin():#获得种子链接data_url=distinct_data()#统计文件夹中视频数量DIR = r'E:\url_bt\douyin_mp4' # 要统计的文件夹num = len([name for name in os.listdir(DIR) if os.path.isfile(os.path.join(DIR, name))])+1print(num)#文件夹现文件数量for url in data_url:# stream=True作用是推迟下载响应体直到访问Response.content属性# res = requests.get(url,stream=True,headers=headers)res = requests.get(url=url, stream=True, headers=headers) # #定义视频存放的路径pathinfo = r'E:\url_bt\douyin_mp4\%d.mp4'%num #%d 用于整数输出 %s用于字符串输出# 实现下载进度条显示,这一步需要得到总视频大小total_size = int(res.headers['Content-Length'])print('这是视频的总大小:',total_size)#设置流的起始值为0temp_size = 0if res.status_code == 200:# 将视频写入文件夹with open(pathinfo, 'wb') as file:file.write(res.content)print(pathinfo + '下载完成啦啦啦啦啦')num += 1with open(r'E:\url_bt\douyin.txt', 'w') as f:f.write('')f.close()time.sleep(700)
如果有优化,以及更好的方案可以随时联系我, 以上均为原创所写,转载请标明出处!
转载于:https://www.cnblogs.com/HugJun/p/11125745.html
python爬虫抖某音爬取视频 Airtest+fiddler相关推荐
- python爬取图片教程-推荐|Python 爬虫系列教程一爬取批量百度图片
Python 爬虫系列教程一爬取批量百度图片https://blog.csdn.net/qq_40774175/article/details/81273198# -*- coding: utf-8 ...
- python爬虫对炒股有没有用_使用python爬虫实现网络股票信息爬取的demo
实例如下所示: import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url ...
- python爬虫 豆瓣影评的爬取cookies实现自动登录账号
python爬虫 豆瓣影评的爬取cookies实现自动登录账号 频繁的登录网页会让豆瓣锁定你的账号-- 网页请求 使用cookies来实现的自动登录账号,这里的cookies因为涉及到账号我屏蔽了,具 ...
- 转 Python爬虫实战一之爬取糗事百科段子
静觅 » Python爬虫实战一之爬取糗事百科段子 首先,糗事百科大家都听说过吧?糗友们发的搞笑的段子一抓一大把,这次我们尝试一下用爬虫把他们抓取下来. 友情提示 糗事百科在前一段时间进行了改版,导致 ...
- 《python爬虫实战》:爬取贴吧上的帖子
<python爬虫实战>:爬取贴吧上的帖子 经过前面两篇例子的练习,自己也对爬虫有了一定的经验. 由于目前还没有利用BeautifulSoup库,因此关于爬虫的难点还是正则表达式的书写. ...
- Python 爬虫 中国行政区划信息爬取 (初学者)
Python 爬虫 中国行政区划信息爬取 (初学者) 背景 环境准备 代码片段 1.定义地址信息对象 2.地址解析对象 2.1 获取web信息 2.2 web信息解析 2.3 区划信息提取 2.4 省 ...
- python爬虫学习 之 定向爬取 淘宝商品价格
python爬虫学习 之 定向爬取 淘宝商品价格 import requests import redef getHTMLText(url):try:r = requests.get(url, tim ...
- python爬虫股票市盈率_使用python爬虫实现网络股票信息爬取的demo
实例如下所示: import requests from bs4 import BeautifulSoup import traceback import re def getHTMLText(url ...
- python爬虫实战之多线程爬取前程无忧简历
python爬虫实战之多线程爬取前程无忧简历 import requests import re import threading import time from queue import Queu ...
最新文章
- Jvm 系列(二):Jvm 内存结构
- 中小型研发团队架构实践:高效率、低风险,一键发布并测试的持续集成工具Jenkins...
- 基于间隔推送全量更新数据状态的设计方法
- pcre-7.9编译安装出错[pcrecpp.lo] Error 1
- ES5_03_Object扩展
- java文件无法导出excel文件,【excel表格文件格式无效】java导出excel,excel打不开,报文件格式无效,怎么解决!...
- windows dos 命令
- RHCSA与RHCE红帽认证考试心得
- STM32F4 + HAL库 + W25Q256的验证
- javaweb开发后端常用技术_java web后端开发技术
- C语言12之什么是字符串类型?
- java集合根据条件筛选数据
- 测试开发工作者日记:2020.67-6.9
- 微信开发者平台应用创建
- gitlab代码查看行数
- 冒泡排序保姆级心得分享
- ZOJ 3736 模拟魔方
- 计算机类中级职称论文,计算机中级职称论文.docx
- Quicker用谷歌浏览器打开网址链接
- 很多人认为创业公司很难成功,这是一个事实