Python爬虫入门教程 41-100

发布时间:2019-02-26 12:29:36编辑:auto阅读(2711)

    爬前叨叨

    从40篇博客开始,我将逐步讲解一下手机APP的爬虫,关于这部分,我们尽量简化博客内容,在这部分中可能涉及到一些逆向,破解的内容,这部分尽量跳过,毕竟它涉及的东西有点复杂,并且偏离了爬虫体系太远,有兴趣的博友,可以一起研究下。

    之前看到知乎有人对手机App爬虫归类,基本符合规则,接下来的10篇博客可能集中在80%的App上,所以还是比较简单的

    1. 50%的app,通过抓包软件就可以分析出抓取参数并抓取到信息。
    2. 30%的app,可能需要适当的反编译,分析出加密算法并抓取到信息。
    3. 10%的app,可能加固,需要脱壳,然后反编译,分析出加密算法并抓取到信息
    4. 10%的app,通过各式各样的签名,证书,设备绑定等方法,隐藏加密算法。

    首先配置第一轮的环境,配置好了,下一篇博客,就采用Fiddler+夜神模拟器[雷电模拟器]等实现儿歌多多APP的数据抓取工作

    抓包

    抓包是爬虫里面经常用到的一个词,完整的应该叫做抓取数据请求响应包 ,而Fiddler这款工具就是干这个的,当然还有其他工具,后面的博客中咱也会提及到

    你可以百度关键字:Fiddler抓取手机APP 相关的博客一大票~,哪篇博客基本都可以叫你入门,所以你可以看看各家的,今天我这篇博客主要写的是Fiddler配合模拟器实现抓包操作。

    python3爬虫入门教程

    百度Fiddler软件,找到官网,下载按照流程安装即可,当然你可以自己去找一个汉化版,这个看你使用百度的水平了,我使用的是4.0以上版本,建议你也使用这个吧,当然版本越高越好。
    python3爬虫入门教程

    做一些简单的配置

    普通https抓包设置

    打开Fiddler ------> Options .然后打开的对话框中,选择HTTPS tab页,如图所示:
    python3爬虫入门教程

    说明 (配置完后记得要重启Fiddler)

    1. 选中"Decrpt HTTPS traffic", Fiddler就可以截获HTTPS请求
    2. Ignore server certificate errors忽略证书错误

    第一次会提示是否信任fiddler证书及安全提醒,选择yes,之后也可以在系统的证书管理中进行管理。

    配置Fiddler允许远程连接

    切换tab选项卡到 Connections 配置端口

    python3爬虫入门教程

    1. 选中"Allow remote computers to connect". 是允许别的机器把HTTP/HTTPS请求发送到Fiddler上来

    等会设置手机代理时需要。设置好后重启fiddler保证设置生效。

    到现在为止,其实Fiddler已经可以抓取你电脑上浏览器访问的数据了,如果不行,重启Fiddler和浏览器即可

    记录本机的IP

    打开cmd窗口,不会的自行百度

    在里面输入 ipconfig 获取你的ip4地址 ,这个地址一定要记住,后面配置模拟器的时候是需要用的~

    python3爬虫入门教程

    ip 192.168.137.1

    下载模拟器

    你可能更多的时候是使用模拟器来打游戏,作为程序猿,模拟器上安装APK是非常好用的。
    自行下载安装夜神模拟器,雷电模拟器或者其他的都可以

    安装完毕,长成这个样子
    下载APK文件,直接拖拽到下面视图,就可以直接安装

    python3爬虫入门教程

    找到设置,点击Wlan,长按鼠标左键,出现如下界面

    python3爬虫入门教程

    点击修改网络

    代理模式选择手动,输入刚才的IP和上述提到的8888端口

    python3爬虫入门教程

    使用模拟器默认浏览器打开 http://192.168.137.1:8888, 点"FiddlerRoot certificate" 然后安装证书,如图:

    python3爬虫入门教程

    安装完毕之后,打开模拟器上的浏览器,输入www.baidu.com

    在Fiddler中抓取到如下链接,代表环境配置已经完毕
    python3爬虫入门教程

    温馨提示下,在抓包过程中,你的fiddler不能关闭哦。关闭了之后你手机网络就不能用了。

    停止网络监控的话去掉wifi的代理设置即可

    设置过滤

    1.手机上设置代理后,这时候fiddler上抓到的是pc和app所有的请求,如果pc上打开网址,会很多,这时候就需要开启过滤功能了。

    2.打开fiddler>Tools>Fiddler Options>HTTPS>...from remote clients only,勾选这个选项就可以了
    python3爬虫入门教程

    • ...from all processes :抓所有的请求
    • ...from browsers only :只抓浏览器的请求
    • ...from non-browsers only :只抓非浏览器的请求
    • ...from remote clients only:只抓远程客户端请求

    Fiddler 抓包简介

    Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。
    python3爬虫入门教程

    需要能简单看懂Fiddler上的内容

    更详细的使用,可以参考一篇写的很不错的文章 参考博客

    python3爬虫入门教程

    上述横着的红色框
    |名称 |含义 |
    |------|------|
    |#|抓取HTTP Request的顺序,从1开始,以此递增|
    |Result|HTTP状态码|
    |Protocol|请求使用的协议,如HTTP/HTTPS/FTP等|
    |Host|请求地址的主机名|
    |URL|请求资源的位置|
    |Body|该请求的大小|
    |Caching|请求的缓存过期时间或者缓存控制值|
    |Content-Type|请求响应的类型|
    |Process|发送此请求的进程:进程ID|
    |Comments|允许用户为此回话添加备注|
    |Custom|允许用户设置自定义值|

    下面竖着的红色框
    |图标|含义|
    |-----|-----|
    |python3爬虫入门教程|请求已经发往服务器|
    |python3爬虫入门教程|已从服务器下载响应结果|
    |python3爬虫入门教程|请求从断点处暂停|
    |python3爬虫入门教程|响应从断点处暂停|
    |python3爬虫入门教程|请求使用 HTTP 的 HEAD 方法,即响应没有内容(Body)|
    |python3爬虫入门教程|请求使用 HTTP 的 POST 方法|
    |python3爬虫入门教程|请求使用 HTTP 的 CONNECT 方法,使用 HTTPS 协议建立连接隧道|
    |python3爬虫入门教程|响应是 HTML 格式|
    python3爬虫入门教程|响应是一张图片|
    |python3爬虫入门教程|响应是脚本格式|
    |python3爬虫入门教程|响应是 CSS 格式|
    |python3爬虫入门教程|响应是 XML 格式|
    |python3爬虫入门教程|响应是 JSON 格式|
    |python3爬虫入门教程|响应是一个音频文件|
    |python3爬虫入门教程|响应是一个视频文件|
    |python3爬虫入门教程|响应是一个 SilverLight|
    |python3爬虫入门教程|响应是一个 FLASH|
    |python3爬虫入门教程|响应是一个字体|
    |python3爬虫入门教程|普通响应成功|
    |python3爬虫入门教程|响应是 HTTP/300、301、302、303 或 307 重定向|
    |python3爬虫入门教程|响应是 HTTP/304(无变更):使用缓存文件|
    |python3爬虫入门教程|响应需要客户端证书验证|
    |python3爬虫入门教程|服务端错误|
    |python3爬虫入门教程| 会话被客户端、Fiddler 或者服务端终止|

    好了,文章到此结束了~~大家Fiddler用起来吧

    下一篇,将写一下如何爬取儿歌多多APP

    python3爬虫入门教程

关键字