python爬虫实战--抖音

申明&警告: 请在相关网站的许可范围内爬取数据.以免影响网站正常运行, 如果我的文章有触犯权益的地方, 请告知删除.

上一篇爬取知乎的文章基本就是大多数网站的爬取思路了(headers部分其实蛮重要的,后面再整理吧)

问题: 爬网站我会了, 手机app能不能爬?

稍微解释下原理: 一般资讯类app或网站, 都是调"后端"拿数据. 这就是为什么刷手机会耗流量.....说明在你点app的时候, 它去其他地方拿数据了. 这个其他地方就是后端. 并且通信方式大多是之前提到了HttpRequest方式.拿到的结果基本都是json结构.

所以: 我们如果能知道手机发出去的请求是什么, 就像前面文章中"找url"一样. 只要知道url和调用方式, 剩下的就是写代码了.

问题: 怎么找app调用的url? 用fiddler!

fiddler是一个代理, 就像我们要访问google必须配置代理FQ一样. 手机配置fiddler服务器, 然后手机上所有的网络请求都会先转发给fiddler. 如下图:

 

图片来源: https://www.jianshu.com/p/9e05a2522758

 

这样在fiddler服务器上就能看到app和web server是如何沟通的了

我们来试下

重要提醒: fiddler配置方式请自行百度, 手机需要安装生成的证书才行, 很显然安装完证书后, 手机的所有网络访问都暴露在Fiddler服务器上了....所以严重提醒: 请不要在手机上安装来源不明的授权证书.

提醒一些关键点

超级注意:
1,fiddler配置的时候证书选择器选makecert. 如下图:


2, 看好命令中的04/04/2018...这个似乎是证书起始日期? 总之配过去日期, 别配未来日期, 否则证书不生效的....可以通过CMD: certmgr.msc 确认下证书是否可用,还是不可用

 


生成证书命令:
makecert.exe -r -ss my -n "CN=DO_NOT_TRUST_FiddlerRoot, O=DO_NOT_TRUST, OU=Created by http://www.fiddler2.com" -sky signature -eku 1.3.6.1.5.5.7.3.1 -h 1 -cy authority -a sha1 -m 120 -b 04/04/2018

手机端修改事项

  1. 在电脑ip:8888处下载证书
  2. 安装证书
  3. wifi添加手动代理: 电脑ip+8888端口

刷两下手机, 看到fiddler有收到请求

先看个图感受下

 

我们找下数据:

image.png

特别注意:

image.png

我们再用https://www.json.cn/ 网站好好看下返回数据 (这个工具网站挺好的)
数据量大的时候会卡住..等一会

image.png

 

字段超多....抖音还是有钱,很多字段其实在首页列表的地方并不需要...但是还是返回了........真的不考虑下用户的感受么...用4G的话刷个列表都会很耗流量的......


另一个小经验: 有些app安全做的很好, 也就是headers里面有些信息是加密生成的...自己没法伪造, 这个时候要要么尝试爆破加密信息, 要么可以辛苦下手机, 通过不断刷手机, 再从fiddler拿到数据. (刷手机其实也可以让程序去做.见之后的文章)

我简单试了下, fiddler支持定制脚本, 如下图... 在FiddlerScript里面是一个js脚本, 可以定制一些动作, 比如在getResponse的时候加个write to file. 就能保存数据了.,,,,但是要对js懂一些..请自己摸索下吧

 

image.png

来源:https://blog.csdn.net/yhmybzyfuck/article/details/85943649
posted @ 2019-01-18 21:18  大天狗子  阅读(4550)  评论(1编辑  收藏  举报