当前位置:   article > 正文

fiddler手机代理无法联网_Python3爬虫:利用Fidder抓取手机APP的数据

爬虫怕手机app没有网络

1、什么是Fiddler?

    Fiddler是一个http协议调试代理工具,它能够记录并检查所有你的电脑和互联网之间的http通讯,设置断点,查看所有的“进出”Fiddler的数据(指cookie,html,js,css等文件)。

   Fiddler 要比其他的网络调试器要更加简单,因为它不仅仅暴露http通讯还提供了一个用户友好的格式。同类的工具有: httpwatch, firebug, wireshark。

    Fiddler使用,参考:https://www.cnblogs.com/miantest/p/7289694.html

    Fiddler下载:https://www.telerik.com/fiddler

    傻瓜式安装,一键到底。

  2、手机APP抓包设置

   2.1 、Fiddler设置

    打开Fiddler软件,打开工具的设置。(Fiddler软件菜单栏:Tools->Options)

27040fba37c4087844298424b6761fb1.png

    在HTTPS中设置如下:

bb6d1ae766ed47ab0419517097bf1991.png

    在Connections中设置如下,这里使用默认8888端口,当然也可以自己更改,但是注意不要与已经使用的端口冲突:

244804ac08b0e042d4d4ce2437e41e1a.png

载后在手机里打开,命名。安装

  局域网设置

    使用Fiddler进行手机抓包,首先要确保手机和电脑的网络在一个内网中,可以使用让电脑和手机都连接同一个路由器。当然,也可以让电脑开放WIFI热点,手机连入。

  这里,我使用的方法是,让手机和电脑同时连入一个路由器中。最后,让手机使用电脑的代理IP进行上网。

   首先,查看电脑的IP地址,在cmd中使用命令ipconfig查看电脑IP地址。找到无线局域网WLAN的IPv4地址,记下此地址。

5be5f49ad9ec8607b5a869266ba9971a.png

    在手机上,点击连接的WIFI进行网络修改,添加代理。进行手动设置,主机名即为上图中找到的IP地址,端口号即为Fiddler设置中的端口号8888:

48eb419a1dffdbede186b5e9e15b1169.png

  2.2 、安全证书下载

  在手机浏览器中输入地址:http://localhost:8888/,点击FiddlerRoot certificate,下载安全证书:

a60c6dcdbdcbbf9e8ef3715dbd561bbf.png

  2.3、 安全证书安装

    以华为手机为例:

    在手机设置--->高级设置-->安全---->显示受信任的CA证书--->用户

28d02a15a2d5ef19ef45d2687c7bd327.png

ada2a77c4e505eaf689eb85bb083aca2.png

df498fce4c8047726b44e75b03e40385.png

    安装成功后,显示如下:

9f77df38cd059e66d643722b885e25a7.png

  3、Fiddler手机抓包测试

  上述步骤都设置完成之后,用手机打开今日头条app,截图如下:

ac54f58346908116761682547f20fec6.png

a39db851e5796d5a614d5faf1a0f86c4.png

   我们再来看fidder抓取的数据情况:

bf67bf5d0ba6f053a65de55052512574.png

c01445f804d9a929b30fbb326d8f656a.png

 可以复制url和head内容

21ad393a93564f215d88f3ed8b350fec.png


GET http://cards.iqiyi.com/views_search/3.0/search?card_v=3.0&scrn_res=1080,1788&keyword=%E5%8E%A6%E9%97%A8%E8%A7%86%E9%A2%91%E5%A4%B4%E6%9D%A1&source=suggest&qr=0&mode=1&duration_level=0&publish_date=0&bitrate=0&need_qc=0&s_sr=1&from_rpage=qy_home&origin=0&psp_vip=0&s_token=main%23%E5%8E%A6%E9%97%A8%E8%A7%86%E9%A2%91&app_k=3179f25bc69e815ad828327ccf10c539&app_v=10.3.5&platform_id=10&dev_os=7.0&dev_ua=HUAWEI+CAZ-AL10&net_sts=1&qyid=864590038380239&cupid_v=3.35.002&psp_uid=1732414636&psp_cki=03RdTbm2uf4Km2X6Mvs1lAVDAg4l6om2Uf0HWm32122YH5VCFgxKvr4m2UFiOwCwBuvlcCu9c&imei=c0497fcececef4b5a2a4f4156d6fd726&aid=47628a3804ad50be&mac=14:5F:94:B3:E0:AD&scrn_scale=3&secure_p=GPhone&secure_v=1&core=1&api_v=8.8&profile=%7B%22group%22%3A%221%2C2%22%2C%22counter%22%3A2%7D&province_id=2007&service_filter=&service_sort=&layout_v=44.115&device_type=0&cupid_uid=864590038380239&psp_status=1&app_gv=&gps=116.373202,39.962811&bdgps=116.385157,39.970314&lang=zh_CN&app_lm=cn&req_times=0&req_sn=1556011726525 HTTP/1.1 qyid: 864590038380239_47628a3804ad50be_14Z5FZ94ZB3ZE0ZAD Connection: Keep-Alive t: 512025323 sign: 04876862c652470b54dd1add698631d5 Host: http://cards.iqiyi.com Accept-Encoding: gzip

21ad393a93564f215d88f3ed8b350fec.png

174eecd8fbb78d683c6b273c8a616ade.png

4、python代码测试

    有了上面这些信息就可以写代码了

9259bdf31a9fdaa64cc469e1a7bcf46a.gif

View Code

  输出结果如下:

2b033234f5fbc787a465886ff8695bd0.png

  5、总结

    需要注意的是,必须先运行Fidder,然后再在手机上进行相关的操作,顺序不能乱,如果在不运行fidder的情况下,操作手机,将无法联网

    抓不到https包,fiddler并不是支持全部协议

    fiddler并不支持全部协议,目前已知的有http2、tcp、udp、websocket等,如果应用走了以上协议,那么fiddler肯定是抓不到的。

    http2:因为fiddler是基于.net framework实现的,因为.net framework不支持http2,所以fiddler无法抓取http2

证书写死在app中,fiddler不能抓取

    fiddler抓包的原理是中间人攻击,也就是说,两头瞒,欺骗客户端&&欺骗服务器端,如果https证书写死在app里,也就是说,app不信任fiddler颁发给它的证书,

    app只信任自己的证书,fiddler没法瞒客户端了,因此fiddler也就抓取不到包了。
    再多说几句,如果是自己开发的app,开发调试方便起见,可以使用类似wireshark的工具导入服务器证书,抓包解密。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号