APP抓包

前面我们了解了一些关于 Python 爬虫的知识,不过都是基于 PC 端浏览器网页中的内容进行爬取。现在手机 App 用的越来越多,而且很多也没有网页端,比如抖音就没有网页版,那么上面的视频就没法批量抓取了吗?

答案当然是 No!对于 App 来说应用内的通信过程和网页是类似的,都是向后台发送请求,获取数据。在浏览器中我们打开调试工具就可以看到具体的请求内容,在 App 中我们无法直接看到。所以我们就要通过抓包工具来获取到 App 请求与响应的信息。关于抓包工具有 Wireshark,Fiddler,Charles等。今天我们讲一下如何用 Fiddler 进行手机 App 的抓包。

Fiddler 的工作原理相当于一个代理,配置好以后,我们从手机 App 发送的请求会由 Fiddler 发送出去,服务器返回的信息也会由 Fiddler 中转一次。所以通过 Fiddler 我们就可以看到 App 发给服务器的请求以及服务器的响应了。

Fiddler 安装配置

我们安装好 Fiddler 后,首先在菜单 Tool>Options>Https 下面的这两个地方选上。

图一.png

然后在 Connections 标签页下面勾选上 Allow remote computers to connect,允许 Fiddler 接受其他设备的请求。

同时要记住这里的端口号,默认是 8088,到时候需要在手机端填。

图二.png

配置完毕,保存后,一定关掉 Fiddler 重新打开。

手机端配置

确保手机和电脑在同一个局域网中,我们先看下计算机的 IP 地址,在 cmd 中输入 ipconfig 就可以看到。我电脑用的是无线网,所以 IP 地址为 192.168.1.3。

图三.png

打开手机无线连接,选择要连接的热点。长按选择修改网络,在代理中填上我们电脑的 IP 地址和 Fiddler 代理的端口。如下图所示:

图四.png

图五.png

保存后,在手机原生浏览器打开 http://192.168.1.3:8008 ,就是上面我们的计算机 IP 和端口。这一步我在夸克浏览器中打开是不行的,一定要到手机自带的浏览器打开。

打开后,点击下图链接,下载证书,然后安装证书。

电脑端浏览器也需要打开此地址,安装证书,方便以后对浏览器的抓包操作。

图六.png

安装后就万事 OK 了,可以用手机打开 App ,在 Fiddler 上愉快的抓包了。

抓包

我们打开抖音 App,会发现 Fiddler 上出来很多连接。我们先清空没用的连接信息,然后滑动到某个人的主页上,来查看他发布过的所有视频,同时在 Fiddler 上找到视频链接。

图七.png

经过观察筛选我们可以看出上图就是我们需要的请求地址,这个地址其实是可以在浏览器上打开的,但是我们需要改一下浏览器的User-Agent,我用的是Firefox的插件,打开后和 Fiddler 右边的信息是一致的。我们看下 Fiddler 右边该请求的响应信息。

图八.png

看到返回了一个 JSON 格式的信息,其中aweme_list 就是我们需要的视频地址,has_more=1 表示往上滑动还会加载更多。之后就可以写代码了。

代码

代码很简单,和我们前几篇讲的一样,直接用 requests 请求相应链接即可。

代码仅做为一个简单的例子,仅仅下载当前页面的内容,如果要下载全部的视频,可以根据当次返回 JSON 结果中的 has_more 和 max_cursor 参数构造出新的 URL 地址不断的下载。

URL 中的 user_id 可以根据自己要爬取的用户更改,可以通过把用户分享到微信,然后在浏览器中打开链接,在打开的 URL 中可以看到用户的 user_id。

import requests

import urllib.request

def get_url(url):

headers = {'user-agent': 'mobile'}

req = requests.get(url, headers=headers, verify=False)

data = req.json()

for data in data['aweme_list']:

name = data['desc'] or data['aweme_id']

url = data['video']['play_addr']['url_list'][0]

urllib.request.urlretrieve(url, filename=name + '.mp4')

if __name__ == "__main__":

get_url('https://api.amemv.com/aweme/v1/aweme/post/?max_cursor=0&user_id=98934041906&count=20&retry_type=no_retry&mcc_mnc=46000&iid=58372527161&device_id=56750203474&ac=wifi&channel=huawei&aid=1128&app_name=aweme&version_code=421&version_name=4.2.1&device_platform=android&ssmix=a&device_type=STF-AL10&device_brand=HONOR&language=zh&os_api=26&os_version=8.0.0&uuid=866089034995361&openudid=008c22ca20dd0de5&manifest_version_code=421&resolution=1080*1920&dpi=480&update_version_code=4212&_rticket=1548080824056&ts=1548080822&js_sdk_version=1.6.4&as=a1b51dc4069b2cc6252833&cp=dab7ca5f68594861e1[wIa&mas=014a70c81a9db218501e1433b04c38963ccccc1c4cac4c6cc6c64c')

运行后就可以得到视频列表:

图九.png

有任何疑问,欢迎加我微信交流。

python爬虫抖音_Python 爬虫——抖音App视频抓包相关推荐

  1. python爬虫抖音招聘_Python爬虫:抖音App视频抓包

    APP抓包 对于 App 来说应用内的通信过程和网页是类似的,都是向后台发送请求,获取数据.在浏览器中我们打开调试工具就可以看到具体的请求内容,在 App 中我们无法直接看到.所以我们就要通过抓包工具 ...

  2. python自动抓包手机_Python爬虫入门:教你通过Fiddler进行手机抓包!

    哟哟哟~ hi起来 everybody Python爬虫入门:教你通过Fiddler进行手机抓包! 今天要说说怎么在我们的手机抓包 进群:700341555获取Python爬虫入门学习资料! Pyth ...

  3. python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...

    Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...

  4. python爬虫自学路线_python 爬虫学习路线:从入门到进阶

    大家好,我是凉拌 今天给大家详解一下我的爬虫学习路线. 对于小白来说,爬虫可能是一件非常复杂.技术门槛很高的事情.比如有的人则认为先要掌握网页的知识,遂开始 HTML\CSS,结果入了前端的坑,浪费了 ...

  5. python爬虫实战测评_Python 爬虫实战入门(上)

    之前为了工作需要,写了不少爬虫小程序,和同事们聊得过程中发现,很多人对爬虫还是停留在听说过的阶段,基于这个原因,特意写点适合小白看的,希望大家能对爬虫有个小认知. 工欲善其事必先利其器,既然要写爬虫, ...

  6. python爬虫面试问题_Python爬虫面试总结

    ## Python爬虫面试总结 1. 写一个邮箱地址的正则表达式? [A-Za-z0-9\u4e00-\u9fa5]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$ 2. 谈 ...

  7. python爬虫怎么挣钱_python爬虫19 | 爬虫遇到需要的登录的网站怎么办?用这3招轻松搞定!...

    你好 由于你是游客 无法查看本文 请你登录再进 谢谢合作 当你在爬某些网站的时候 需要你登录才可以获取数据 咋整? 莫慌 小帅b把这几招传授给你 让你以后从容应对 那么 接下来就是 学习 python ...

  8. python 正则表达式提取数据_Python爬虫教程-19-数据提取-正则表达式(re)

    本篇主页内容:match的基本使用,search的基本使用,findall,finditer的基本使用,匹配中文,贪婪与非贪婪模式 Python爬虫教程-19-数据提取-正则表达式(re) 正则表达式 ...

  9. python用法查询笔记_Python爬虫学习笔记(三)

    handler处理器自定义 - Cookies && URLError && json简单使用 Cookies: 以抓取https://www.yaozh.com/为例 ...

最新文章

  1. pip install faiss-gpu失败unable to execute ‘swig‘: No such file or directory
  2. VS编译器如何单步调试
  3. android软件perthbus,Transit
  4. 益生菌拯救“社恐”?肿瘤攘外安内?胎盘似癌?这个世界怎么了。。。
  5. 一天一种设计模式之三-----单例模式
  6. YUM只下载软件不安装的设定
  7. idea git和svn间切换
  8. 计算混响时间的意义_混响时间的测量方法和步骤
  9. SEO优化:如何挖掘谷歌关键词-实例讲解(2022最新)
  10. 猴子摘香蕉-人工智能实验的思考
  11. postfix搭建纯邮件转发服务器
  12. [附源码]计算机毕业设计JAVA社区生鲜仓库管理系统
  13. 20万华人的迪拜:亚洲的另一大Web3之都
  14. 终于解决了hao123锁定主页的问题~
  15. webpack 配置文件
  16. nodejs毕业设计源码大学生心理咨询微信小程序
  17. python pymssql - pymssql模块官方文档的翻译
  18. 第5章 Redis新类型
  19. Endnote X7导入中文文献时,出现信息不全
  20. 火墙--iptables

热门文章

  1. 2021年安全员-C证(陕西省)报名考试及安全员-C证(陕西省)考试总结
  2. 二探netCDF4——ECMWF
  3. Zilliz2022首届非结构化数据峰会圆满结束
  4. [MTK][FAQ23389] 如何配置AUXADC检测Battery ID或检测其他sensor
  5. Reverse a singly linked list python
  6. Tekton pipeline DEMO + 探索一些tkn命令
  7. TCP-508N使用python modbus_tk库控制总结
  8. intel realsense D400系列相机介绍(一)
  9. 更新系统后小米note显示无服务器,小米解答MIUI 9系统升级常见问题
  10. 安装破解版 Charles for mac抓包工具教程