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

手機端修改事項

  1. 在電腦ip:8888處下載證書
  2. 安裝證書
  3. 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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM