本文僅供學習參考 切勿用於商業
本次爬取使用fiddler+模擬器(下載抖音APP)+pycharm
1. 下載最新版本的fiddler(自行百度下載),以及相關配置
1.1.依次點擊,菜單欄-Tools-Options-HTTPS,如圖1紅框打鈎,HTTPS旁邊Connections配置,如圖2紅框打鈎
1.2.再次點擊HTTPS欄,點擊Actions選擇第二個…to Desktop這個選項,發送證書到桌面(方便找到,模擬器中需要安裝)
2.下載安裝模擬器,我用的是夜神模擬器
自行修改頁面或內存等。。。。
2.1.回到電腦桌面, 找到剛才保存的證書,拖動到模擬器,看一下下圖紅框中的路徑。
2.2. 返回模擬器桌面,打開設置,下拉找到進入-安全-選擇從SD卡安裝-如下圖所示,找到證書進行安裝,提示的隨便輸入。
2.3.返回到模擬器設置, 找到WiFi,進去,左鍵長按,修改網絡,如圖修改,本機ip查詢,cmd輸入ipconfig,IPv4后邊的就是本機IP
3. 模擬器應用市場中下載抖音App,到此配置已完成,重啟模擬器,之后測試fiddler是否能抓到請求包。
4.測試能抓到請求。然后分析請求。
5,本文爬取的是 '抖音昵稱', '抖音ID', '個人簡介' 因此查看到 抓包返回的是圖2的數據
6.得到的數據不可能一個一個的復制保存到本地,因此可使用fiddler自行編寫腳本保存數據, 走起,自己去添加一個,如圖3,添加的腳本 自動保存相應數據到本地json文件
7.以下是fiddler腳本,根據需要自行修改
if (oSession.uriContains("https://aweme-eagle-hl.snssdk.com/aweme/v1/user/")){
//上邊的網址是你需要保存數據的網址開頭的部分,網站修改的話需要及時修改url var strBody=oSession.GetResponseBodyAsString(); var sps = oSession.PathAndQuery.slice(-64,-54); //FiddlerObject.alert(sps) var filename = "E:/此處是本地路徑" + "/" + sps + ".json"; var curDate = new Date(); var sw : System.IO.StreamWriter; if (System.IO.File.Exists(filename)){ sw = System.IO.File.AppendText(filename); sw.Write(strBody); } else{ sw = System.IO.File.CreateText(filename); sw.Write(strBody); } sw.Close(); sw.Dispose(); }
8.在模擬器抖音中, 不斷的去往下翻,往右翻, 查看用戶頁,fiddler編寫的腳本就自動保存了你需要的數據。如圖
9. 那么問題來了 當想大量的爬取數據時, 不可能人工翻頁,所以這時候用到了模擬器自帶的操作助手功能。
9.1,自己動手錄取一段,你想讓模擬器不斷循環的操作,設置循環次數,往下翻,記得保存。
9.2. 點擊播放按鈕,模擬器就會自動循環你錄制的操作,一直往下翻頁,fiddler,會不斷有新的相應被抓到,本地的json數據越來越多。
=======================================================
基本操作搞完了,那么拿到的json文件如何解析呢,這時候敲代碼去吧。
=======================================================
10。說一下思路,具體代碼不做展示。
10.1,從本地去到json文件,放到一個列表中,循環列表中的json
10.2 json.load()讀取json文件content
10.3 取json中你所需的資料。
10.4 存儲,我存的excel文件,出現了一些問題,這里我說一下。
# 存儲時特殊字符會報錯,此處用codecs存儲,存儲的csv會出現編碼亂的問題,解決辦法,右鍵用記事本打開保存的csv文件,另存為一下,編碼格式選utf-8. with codecs.open("./douyin/douyin.csv", "a+", encoding='utf-8') as f: writer = csv.writer(f, dialect="excel") writer.writerow(l)
10.5 爬到的數據,會有從重復的,去重很簡單,這里就不說了。
展示一下我爬到的數據