记录一下若何用python爬取app数据抖音怎么无人曲播软件v3,本文以爬取抖音视频app为例。
编程东西:pycharm
app抓包东西:mitmproxy
app主动化东西:appium
运行情况:windows10
思绪:
私信小编01即可获取大量Python进修材料
假设已经设置装备摆设好我们所需要的东西
1、利用mitmproxy敌手机app抓包获取我们想要的内容
2、操纵appium主动化测试东西,驱动app模仿人的动做(滑动、点击等)
3、将1和2相连系到达主动化爬虫的效果
一、mitmproxy/mitmdump抓包确保已经安拆好抖音怎么无人曲播软件v3了mitmproxy,而且手机和PC处于统一个局域网下,同时也设置装备摆设好了mitmproxy的CA证书,网上有良多相关的设置装备摆设教程,那里我就略过了。
因为mitmproxy不撑持windows系统,所以那里用的是它的组件之一mitmdump,它是mitmproxy的号令行接口,能够操纵它对接我们的Python脚本,用Python实现监听后的处置。
在设置装备摆设好mitmproxy之后,在控造台上输入mitmdump并在手机上翻开抖音app,mitmdump会呈现手机上的所有恳求,如下图
能够在抖音app不断往下滑,看mitmdump所展现的恳求,会发现前缀别离为
http://v1-dy.ixigua.com/抖音怎么无人曲播软件v3;http://v3-dy.ixigua.com/抖音怎么无人曲播软件v3;http://v9-dy.ixigua.com/那3个类型前缀的url恰是我们的目的抖音视频url。
那接下来就要编写python脚本将视频下载下来,需要利用 mitmdump -s scripts.py(此处为python文件名)来施行脚本。
import requests# 文件途径path = 'D:/video/'num = 1788 def response(flow): global num # 经测试发现视频url前缀次要是3个 target_urls = ['http://v1-dy.ixigua.com/', 'http://v9-dy.ixigua.com/', 'http://v3-dy.ixigua.com/'] for url in target_urls: # 过滤掉不需要的url if flow.request.url.startswith(url): # 设置视频名 filename = path + str(num) + '.mp4' # 利用request获取视频url的内容 # stream=True感化是推延下载响应体曲到拜候Response.content属性 res = requests.get(flow.request.url, stream=True) # 将视频写入文件夹 with open(filename, 'ab') as f: f.write(res.content) f.flush() print(filename + '下载完成') num += 1代码写得比力粗拙,不外根本的逻辑仍是比力明晰的,如许我们就能够把抖音的视频下载下来,不外那个办法有个缺陷,就是获取视频需要人来不竭地滑动抖音的下一个视频,那时候我们能够用一个强大的appium主动化测试东西来处理。
二、Appium敌手机停止模仿操做确保已经设置装备摆设好appium所依赖的情况Android和SDK,网上也有许多教程,那里我就不说了。
appium的用法很简单,起首我们先翻开appium,启动界面如下
点击Start Server按钮即可启动appium办事
将Android手机通过数据线与PC相连,同时翻开USB调试功用,能够输入adb号令(详细能够去网上查找)测试毗连情况,若呈现以下成果,则申明毗连胜利
model是设备名,后面设置装备摆设需要用到。之后点击下图箭头所指的按钮就会呈现一个设置装备摆设页面
在右下角的JSON Representation设置装备摆设启动app的Desired Capabilities参数,别离是paltformName、deviceName、appPackage、appActivity。
platformName:平台名称,一般是Android或iOS.
deviceName:设备名称,手机的详细类型
appPackage:App法式包名
appActivity:入口Activity名,凡是以.开头
platformName和deviceName比力容易获得,而appPackage和appActivity那两个能够通过以下办法获取到。
在控造台上输入 adb logcat>D:\log.log 号令,而且在手机翻开抖音app,然后在D盘中翻开log.log文件,查找Displayed关键字
由上图能够晓得Displayed后面的 com.ss.android.ugc.aweme对应的是appPackage,.main.MainActivity对应的是appActivity,最初我们的设置装备摆设成果如下:
{ "platformName": "Android", "deviceName": "Mi_Note_3", "appPackage": "com.ss.android.ugc.aweme", "appActivity": ".main.MainActivity"}再点击Start Session即可启动Android手机上的抖音app并进入到启动页面,同时PC上会弹出一个调试窗口,从那个窗口能够预览当前手机页面,还能够敌手机模仿各类操做,在本文不是重点,所以略过。
鄙人面我们将利用python脚原来驱动app,间接在pycharm运行即可
from appium import webdriverfrom time import sleep class Action(): def __init__(self): # 初始化设置装备摆设,设置Desired Capabilities参数 self.desired_caps = { "platformName": "Android", "deviceName": "Mi_Note_3", "appPackage": "com.ss.android.ugc.aweme", "appActivity": ".main.MainActivity" } # 指定Appium Server self.server = 'http://localhost:4723/wd/hub' # 新建一个Session self.driver = webdriver.Remote(self.server, self.desired_caps) # 设置滑动初始坐标和滑动间隔 self.start_x = 500 self.start_y = 1500 self.distance = 1300 def comments(self): sleep(2) # app开启之后点击一次屏幕,确保页面的展现 self.driver.tap([(500, 1200)], 500) def scroll(self): # 无限滑动 while True: # 模仿滑动 self.driver.swipe(self.start_x, self.start_y, self.start_x, self.start_y-self.distance) # 设置延时期待 sleep(2) def main(self): self.comments() self.scroll() if __name__ == '__main__': action = Action() action.main()下面是爬虫的过程。ps:偶然会爬取到反复的视频
———————————————————————————————————————————
本文TAG:抖音怎么无人直播软件v3无人直播软件抖音直播无人直播怎么无人视频下载接下来音视频androidAndroid