今天聊下微信小程式的抓取,其實小程式的抓取不難,主要解決抓包和如何除錯小程式這兩個問題。如果你運用chrome除錯已經比較熟練了的話,就手到擒來。
先來說小程式抓包問題
不用破解的辦法如何抓到小程式的包?破解是個費勁的事,一不小心微信賬號還可能被封。
小程式抓不到包通常就是你手機的安卓系統版本太高和微信APP的版本太高了。版本越高,通常它的安全性就越好。換用安卓系統是4.4的手機和微信APP版本在6.7左右的版本。使用Fiddler或Charles抓包妥妥的。
如果你實在沒有低安卓系統版本手機和低版本微信,繼續看下面的文字,待會再介紹一種抓包方法。
只要抓包搞定了,很多小程式也就能抓取了,剩下就是解決IP問題。還有一部分小程式在前端有反爬措施,對請求引數加密或混淆了。所以就還得解決小程式除錯問題。
再說下小程式除錯問題
首先得對小程式有一點理解,小程式簡單來說也是一個網站,只是它只能在微信裡開啟,不能在瀏覽器裡開啟。
我們都知道一個網站的前端頁面是由html、css、javascript組成,小程式的前端頁面也是由類似這樣的來組成的。小程式裡的資料互動也是由javascript來負責的。所以爬蟲除錯小程式也主要是除錯javascript。
那怎麼除錯小程式的javascript呢?
當我們在微信裡點選小程式時,微信會把這個小程式的前端程式碼下載到你的手機上。我們只要拿到這個小程式前端程式碼,就能在微信提供的小程式開發者工具上進行除錯。小程式程式碼的路徑在:
/data/data/com.tencent.mm/MicroMsg/微訊號id資料夾/appbrand/pkg/
該路徑下以.wxapkg結尾的檔案就是小程式前端程式碼被編譯之後的形式。
你會看到很多個.wxapkg檔案,因為你開啟過很多小程式,最好是你把這個檔案下的檔案全都刪除,重新開啟目的小程式。然後裡面的.wxapkg檔案就都是該小程式的了。
你需要把.wxapkg的檔案都拷貝到你的電腦上來。(拷貝該目錄需要你擁有root許可權,所以你得先把手機root了,或者在安卓模擬器裡面使用微信,進行如上操作,模擬器預設是root了的)。
解包wxapkg
我們的目的是拿到小程式的前端程式碼在小程式開發者工具裡面除錯,wxapkg是編譯之後的小程式,所以還得反編譯,讓wxapkg解包出原始碼。
要感謝開源的世界,已經有愛好者開發出了.wxapkg的解包程式,我們就直接拿過來用。
解包程式的github地址是:
https://github.com/qwerty472123/wxappUnpacker
解包程式是由node.js開發的,所以你得先安裝node.js,然後再安裝node.js的一些依賴包,作者已經在文字裡說得很清楚了。我就不再贅述,網上也有很多該程式的用法文章。
最後你只需要執行命令:
node xxxxxx.wxapkg
node是執行node.js的命令,即可把小程式前端原始碼還原了。類似下圖這樣的。
除錯小程式
註冊一個小程式開發者賬號
註冊地址:https://mp.weixin.qq.com/cgi-bin/registermidpage?action=index&lang=zh_CN&token=
下載小程式開發者工具:
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html
另外因為這個小程式是別人開發的,你要把這個小程式執行起來,要讓它不去驗證域名和ssl證照那些,如下。
JS逆向方法論-反爬蟲的四種常見方式
寫爬蟲,免不了要研究JavaScript設定cookies的問題
爬蟲技巧:逆向破解js程式碼加密,程式碼混淆不是難事
如何讓爬蟲一天抓取100萬張網頁
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***