python爬虫实战--抖音
申明&警告: 请在相关网站的许可范围内爬取数据.以免影响网站正常运行, 如果我的文章有触犯权益的地方, 请告知删除.
上一篇爬取知乎的文章基本就是大多数网站的爬取思路了(headers部分其实蛮重要的,后面再整理吧)
问题: 爬网站我会了, 手机app能不能爬?
稍微解释下原理: 一般资讯类app或网站, 都是调"后端"拿数据. 这就是为什么刷手机会耗流量.....说明在你点app的时候, 它去其他地方拿数据了. 这个其他地方就是后端. 并且通信方式大多是之前提到了HttpRequest方式.拿到的结果基本都是json结构.
所以: 我们如果能知道手机发出去的请求是什么, 就像前面文章中"找url"一样. 只要知道url和调用方式, 剩下的就是写代码了.
问题: 怎么找app调用的url? 用fiddler!
fiddler是一个代理, 就像我们要访问google必须配置代理翻墙一样. 手机配置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
手机端修改事项
- 在电脑ip:8888处下载证书
- 安装证书
- 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
python爬虫实战--抖音的更多相关文章
- PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二手急速响应捡垃圾平台_3(附源码持续更新)
说明 文章首发于HURUWO的博客小站,本平台做同步备份发布. 如有浏览或访问异常图片加载失败或者相关疑问可前往原博客下评论浏览. 原文链接 PYTHON爬虫实战_垃圾佬闲鱼爬虫转转爬虫数据整合自用二 ...
- 【图文详解】python爬虫实战——5分钟做个图片自动下载器
python爬虫实战——图片自动下载器 之前介绍了那么多基本知识[Python爬虫]入门知识,(没看的先去看!!)大家也估计手痒了.想要实际做个小东西来看看,毕竟: talk is cheap sho ...
- Python爬虫实战(4):豆瓣小组话题数据采集—动态网页
1, 引言 注释:上一篇<Python爬虫实战(3):安居客房产经纪人信息采集>,访问的网页是静态网页,有朋友模仿那个实战来采集动态加载豆瓣小组的网页,结果不成功.本篇是针对动态网页的数据 ...
- Python爬虫实战(2):爬取京东商品列表
1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反 ...
- Python爬虫实战四之抓取淘宝MM照片
原文:Python爬虫实战四之抓取淘宝MM照片其实还有好多,大家可以看 Python爬虫学习系列教程 福利啊福利,本次为大家带来的项目是抓取淘宝MM照片并保存起来,大家有没有很激动呢? 本篇目标 1. ...
- Python爬虫实战---抓取图书馆借阅信息
Python爬虫实战---抓取图书馆借阅信息 原创作品,引用请表明出处:Python爬虫实战---抓取图书馆借阅信息 前段时间在图书馆借了很多书,借得多了就容易忘记每本书的应还日期,老是担心自己会违约 ...
- Python爬虫实战七之计算大学本学期绩点
大家好,本次为大家带来的项目是计算大学本学期绩点.首先说明的是,博主来自山东大学,有属于个人的学生成绩管理系统,需要学号密码才可以登录,不过可能广大读者没有这个学号密码,不能实际进行操作,所以最主要的 ...
- Python爬虫实战八之利用Selenium抓取淘宝匿名旺旺
更新 其实本文的初衷是为了获取淘宝的非匿名旺旺,在淘宝详情页的最下方有相关评论,含有非匿名旺旺号,快一年了淘宝都没有修复这个. 可就在今天,淘宝把所有的账号设置成了匿名显示,SO,获取非匿名旺旺号已经 ...
- Python爬虫实战六之抓取爱问知识人问题并保存至数据库
大家好,本次为大家带来的是抓取爱问知识人的问题并将问题和答案保存到数据库的方法,涉及的内容包括: Urllib的用法及异常处理 Beautiful Soup的简单应用 MySQLdb的基础用法 正则表 ...
随机推荐
- Java中final、finally、finalize
简述 final 可以用来修饰类.方法.变量,分别有不同的意义: final 修饰的 class 代表不可以继承扩展: final 的变量是不可以修改的:final 的方法也是不可以重写的(overr ...
- lyc——2019.10.31
10:判决素数个数 总时间限制: 1000ms 内存限制: 65536kB 描述 输入两个整数X和Y,输出两者之间的素数个数(包括X和Y). 输入 两个整数X和Y(1 <= X,Y <= ...
- maven整合ssm框架
1.创建maven web工程 创建完成后,项目结构如下 2.项目配置文件 在pom.xml中添加SSM框架相关jar包的依赖关系,pom.xml代码如下 <?xml version=" ...
- WPF global exception handler
WPF global exception handler [duplicate] https://stackoverflow.com/questions/1472498/wpf-global-exce ...
- vuejs2从入门到精通与项目开发实战
vuejs2从入门到精通:一.基础部分0.课件1.介绍2.vue实例3.模板语法4.计算属性和观察者5.Class与Style绑定6.条件渲染7.列表渲染8.事件处理9.表单输入绑定10.1.组件(1 ...
- <JavaScript>“浏览器模式”和“文档模式”之间的区别
只有IE浏览器中才会有“浏览器模式”和“文档模式”,兼容性视图涉及两个重要的功能便是“浏览器模式[browser mode]”和“文档模式[document mode]”,在IE8/IE9中按F12键 ...
- 使用Jsp/Js/Ajax/Json/Jquery/Easyui + Servlet + JDBC + Lucene/Mysql/Oracle完成数据库分页
package loaderman.action; import java.io.IOException; import java.io.PrintWriter; import java.util.L ...
- UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 16: invalid start byte
读取一个csv文件失败,提示: UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 16: invalid sta ...
- nodeslector使用
问题: node节点挂了一个, 无法切换到另一个node上 解决: .指定了 nodeslector .设置了下面: hostNetwork: true dnsPolicy: ClusterFirst ...
- vue项目在(windowServer)nginx上的部署
(一) 本地部署. 1.下载phpStudy (http://phpstudy.php.cn/) 2.安装到自己指定盘根目录的文件夹目录,安装完后会用到. 3.运行phpStusy可能报错,需要下载安 ...
