记录一下如何用python爬取app数据,本文以爬取抖音视频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脚本将视频下载下来,需要使用 mitmdump -s scripts.py(此处为python文件名)来执行脚本。

import requests
# 文件路径
path = 'D:/video/'
num = 1788def 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:# 过滤掉不需要的urlif 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 webdriver
from time import sleepclass 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 Serverself.server = 'http://localhost:4723/wd/hub'# 新建一个Sessionself.driver = webdriver.Remote(self.server, self.desired_caps)# 设置滑动初始坐标和滑动距离self.start_x = 500self.start_y = 1500self.distance = 1300def 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:偶尔会爬取到重复的视频

想学习更多关于python的知识可以加我QQ:2955637827 

教你用python爬取抖音app视频相关推荐

  1. Python爬取抖音app视频

    作者:哈库呐玛塔塔 来源:https://urlify.cn/ANzAre 记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitm ...

  2. 青灯教育python免费公开课_如何使用Python爬取抖音APP视频

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 假 ...

  3. 使用python爬取抖音app视频(appium可以操控手机)

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...

  4. 使用python爬取抖音app视频

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...

  5. 使用python爬取抖音app视频!谁说APP数据爬不了的!

    记录一下如何用python爬取app数据,本文以爬取抖音视频app为例. 编程工具:pycharm app抓包工具:mitmproxy app自动化工具:appium 运行环境:windows10 思 ...

  6. python爬取抖音APP视频教程

    本文讲述爬取抖音APP视频数据(本文未完,后面还有很多地方优化总结) 公众号回复:抖音 即可获取源码 1.APP抓包教程,需要用到fiddler fiddler配置和使用查看>>王者荣耀盒 ...

  7. 用Python爬取抖音短视频实战,如此简单

    前言 抖音,是一款可以拍短视频的音乐创意短视频社交软件,该软件于2016年9月上线,是一个专注年轻人的15秒音乐短视频社区.用户可以通过这款软件选择歌曲,拍摄15秒的音乐短视频,形成自己的作品.此AP ...

  8. Python爬取 抖音 App短视频信息

    1. Charles获取视频接口  爬取之前先将手机与PC至于同局域网并确保手机WIFI的代理端口为8888,然后打开Charles获取视频请求的链接,如图: 2. 手动上滑触发视频请求接口   自动 ...

  9. python爬取抖音评论_使用python爬虫,批量爬取抖音app视频(requests+Fiddler+appium)

    # _*_ coding: utf-8 _*_ import   requests import sys headers = {"User-Agent":"Mozilla ...

最新文章

  1. php 表单校验函数库(判断email格式是否正确、http地址是否合法有效、手机号码是否合法)...
  2. 『每周观察』:“在线抓娃娃”开启新娱乐窗口
  3. jdbc 自增id 原理_面试被问分布式ID怎么办? 滴滴(Tinyid)甩给他
  4. 使用 SAP BTP 创建一个 Spring Boot Java 应用
  5. hihocoder 1689 - 推断大小关系(图论+二分)
  6. xampp 运行 yaf框架
  7. 编译OpenJDK12:Could not find any dlls in /cygdrive/c/progra~2/wi3cf2~1/10/Redist/ucrt/DLLs/x64
  8. 将Matlab程序打包成.exe独立可执行程序
  9. Matlab imshow, image, imagesc 三者详细分析
  10. Linux 媒体框架(Media Framework)一
  11. vscode实用快捷键_23个常用的VSCode快捷键(动图演示)
  12. 百度网盘百度云不限速下载几种方法介绍汇总(借助网页或者软件等)
  13. Follow Me: ArcPy(2)
  14. 惹某人突然不舍de第七周(习题+感悟)
  15. 年收入10万的家庭怎么买保险最划算?
  16. Unity3D之挥动武器产生的剑痕特效
  17. python数据分析项目实战—————链家北京租房数据统计分析
  18. 在CSS中实现父选择器效果
  19. 游戏平台,游戏私服选择三方支付的优势
  20. Ubuntu臭虫(bugs)知多少?

热门文章

  1. [飞行家] The Aviator (2004)
  2. r5 5600u和r7 4800u 核显差距大吗
  3. c语言中的pen函数,(5分) 下列哪个函数是用来控制画笔的尺寸的____________ 答案:pensize()...
  4. 一些感慨,一些感动(大部分时间是犯傻)
  5. jq构造的ajax按了按钮没反应,JQ动态生成节点绑定事件无效问题
  6. ​慕尼黑大数据初创公司Celonis融资2.9亿美元
  7. 2022-2028全球与中国在线服装租赁市场现状及未来发展趋势
  8. Scrollview嵌套PreferenceFragment导致Fragment高度异常问题
  9. vue 读取本地文件内容
  10. Photoshop在网页设计中的应用与方法