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的基础用法 正则表 ...
随机推荐
- Ubuntu切换登录用户和root用户
https://blog.csdn.net/master_ning/article/details/80733818
- CodeForces 755D PolandBall and Polygon ——(xjbg)
每次连线,起点和终点之间,每一个被点亮的点,这些点都能连出去两条线,因此可以增加的块数+2(1这个点除外,因为只有连出的点没有连进的点),计算起点和终点之间有几个点被点亮即可,然后1这个点特判一下.感 ...
- Spring动态切换数据源及事务
前段时间花了几天来解决公司框架ssm上事务问题.如果不动态切换数据源话,直接使用spring的事务配置,是完全没有问题的.由于框架用于各个项目的快速搭建,少去配置各个数据源配置xml文件等.采用了动态 ...
- Linux kernel device mapper
Device Mapper 是 Linux2.6 内核中支持逻辑卷管理的通用设备映射机制,它为实现用于存储资源管理的块设备驱动提供了一个高度模块化的内核架构,如图 1. 图1 Device Mappe ...
- JVM----双亲委派模型
加载类的开放性 我们在了解双亲委派模型之前,不得不先了解一下什么是类加载器.虚拟机设计团队之初是希望类加载过程“通过一个类的全限定名来获取描述该类的二进制字节流”这个动作能放到虚拟机外部实现,以便于让 ...
- Netfilter 之 钩子函数调用
本篇主要从三层协议栈调用函数NF_HOOK说起,不断深入,分析某个钩子点中所有钩子函数的调用流程,但是本文不包含规则介绍和核心的规则匹配流程,后续文章将继续分析: NF_HOOK函数先调用了nf_ho ...
- HearthBuddy DONOTDELETE.bin
namespace Hearthbuddy{ // Token: 0x02000022 RID: 34 public class App : System.Windows.Applicat ...
- Centos7卸载nginx及php、php-fpm方法
Centos7卸载nginx及php.php-fpm方法 2016年12月01日 18:17:22 阅读数:20824 本文环境:Centos7.yum方式安装的nginx和php.php-fpm 之 ...
- 图及其衍生算法(Graphs and graph algorithms)
1. 图的相关概念 树是一种特殊的图,相比树,图更能用来表示现实世界中的的实体,如路线图,网络节点图,课程体系图等,一旦能用图来描述实体,能模拟和解决一些非常复杂的任务.图的相关概念和词汇如下: 顶点 ...
- 在业务控制方法中写入User,Admin多个模型收集参数
1) 可以在业务控制方法中书写1个模型来收集客户端的参数 2) 模型中的属性名必须和客户端参数名一一对应 3) 这里说的模型不是Model对象,Model是向视图中封装的数据 @Controll ...
