申明&警告: 請在相關網站的許可范圍內爬取數據.以免影響網站正常運行, 如果我的文章有觸犯權益的地方, 請告知刪除.
上一篇爬取知乎的文章基本就是大多數網站的爬取思路了(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