一、寫在開頭
1、抓取像抖音這樣的app需要繞過證書封鎖,也就是pinning ssl,安卓7以上的系統需要采用edxposed+trustmealready+msgisk,當然為了實作這一目標,需要將手機root,不root手機的話安裝visualxposed+trustmealready也可以,但是不太好用
2、注意,抖音版本不要使用新版本,盡量使用舊一點的版本,否則就算安裝了上述的框架依然會出現網路錯誤的野米安
3、會使用到的工具:fiddler(老版本,最近出了個新版叫fiddler everywhere不好用,沒法解決亂碼的問題,還收費)、appium、mitmproxy、sdk(adb用于操作安卓底層、uiautomatorviewer找出控制元件資訊、aapt找到app的引數)
二、appium+mitmproxy
1、appium用于開啟服務和定位app控制元件節點


2、mitmproxy(mitmproxy、mitmdump、mitmweb)用于和python結合實作爬蟲邏輯,mitmproxy也是一個抓包工具,主要在linux下使用
三、出現的問題和解決方案
1、關于fiddler抓到的請求鏈接在瀏覽器中打開得不到資料的問題的解決辦法:

像這種情況使用requests.get()來進行請求的時候要帶上headers,這個headers在fiddler中來找:

需要將其改寫為字典的形式,去掉無關空格

2、在請求的引數中,有些是引數是需要被注釋掉的,比如cookie,時間戳等,需要具體情況具體分析測驗,不同的請求需要的請求頭是不盡相同的;
3、關于動態節點比如直播彈幕、在線人數等,這些動態節點我們可以在抓包工具中抓到其請求鏈接,但是我們在瀏覽器中打開卻是一片空白,加上請求頭使用requests去訪問也無用,這種情況目前還沒有有效的解決辦法

4、有時候明明已經開啟了fiddler或mitmproxy的服務,但是手機連上網之后就是沒法上網,這個時候考慮重啟fiddler、mitmproxy,將手機的wifi代理取消連接正常后再加上代理,多試幾次,這玩意兒就沒怎么讓人順心過
5、關于使用appium尋找APP找元素節點的問題,盡量不要使用tap方法,同樣的位置會有很多元素的重疊,當界面稍微出現差錯就會使得整個程式對界面的操作陷入混亂之中,使用id等唯一定位一個節點的方法可以有效避免這種情況的發生
附錄
1、視瞥澩(來自youtube)
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/289910.html
標籤:其他
下一篇:mybatis中經典的設計模式
