欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

爬蟲爬取公眾號內(nèi)容 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價值,我們在追求其視覺表現(xiàn)的同時,更側(cè)重于功能的便捷,營銷的便利,運營的高效,讓網(wǎng)站成為營銷工具,讓軟件能切實提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序為后期升級提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 公眾號相關(guān) >

爬蟲爬取公眾號內(nèi)容

發(fā)表時間:2020-10-17

發(fā)布人:葵宇科技

瀏覽次數(shù):108

*不涉及具體代碼

具體步驟

  1. 獲取移動端內(nèi)容列表
  • AVD模擬器(Discarded)

    經(jīng)過實際嘗試,算力占用過多,不予考慮。
  • adb USB debug
    adb調(diào)試 + appium server + python appium-client 控制腳本點擊/滑動獲取所有內(nèi)容列表、發(fā)送移動端頁面訪問請求。
  1. 移動端流量請求劫持
    調(diào)查發(fā)現(xiàn),所有移動端訪問公眾號內(nèi)容發(fā)起的流量請求跟實際內(nèi)容URI均保持統(tǒng)一格式:

    在這里插入圖片描述

如上圖可知,移動設(shè)備統(tǒng)一向mp.weixin.qq.com/mp/geticon發(fā)送api獲取公眾號內(nèi)容,經(jīng)過嘗試發(fā)現(xiàn),

實際上內(nèi)容的URL實際為移動端發(fā)送請求的請求頭中的Referer的value。因此,以請求劫持的方式獲取爬蟲目標(biāo)URL。

original-request可以通過emulator進行觸發(fā),但是劫持請求包,既要保證移動設(shè)備能夠獲得公眾號內(nèi)容保證emulator無異常持續(xù)運行,

又要保證能自動化將大量請求中的Referer值提取出來由python爬蟲解析程序提取數(shù)據(jù)。

  • tcpdump / wireshark流量分析
  • Fiddler http(s)數(shù)據(jù)包抓取(采用)

Ⅰ 將Fiddler host跟移動設(shè)備連接同一Intranet

Ⅱ 移動設(shè)備設(shè)備使用Fiddler作為網(wǎng)絡(luò)代理,以供Fiddler嗅探移動端流量

> Tools > Options > Connections使能Fiddler Proxy,并將移動設(shè)備代理配置為Fiddler host/監(jiān)聽端口。

在這里插入圖片描述

Ⅲ 微信公眾號請求均為HTTPS協(xié)議,沒法直接抓取獲取數(shù)據(jù)包內(nèi)容,安裝Fiddler證書以嗅探代理流量

??a. 在移動端設(shè)備瀏覽器訪問http://ipv4.fiddler:8888/,下載Fiddler證書,在移動端安裝

??b. 在移動端點擊訪問公眾號內(nèi)容,確認(rèn)Fiddler能抓取到移動端請求,并能查看數(shù)據(jù)包內(nèi)容(主要是Request Headers)

TODO: 調(diào)查發(fā)現(xiàn)還有更好的流量截持方式,mitmproxy(mitmproxy is a free and open source interactive HTTPS proxy.)。

  1. 提取劫持?jǐn)?shù)據(jù)包Referer字段
    作為公眾號內(nèi)容爬取的最終目標(biāo),即請求包包頭Referer字段的URL,因此需要對Fiddler劫持的流量進行統(tǒng)一整理提取存儲。

嘗試而言,Fiddler導(dǎo)出session內(nèi)容效果并不太理想并且FiddlerScript使用也不是太友好(雖然很強),

因此采用這種辦法:Fiddler Custom Rules重定向到本地trap web server,由trap server提取請求內(nèi)容持久化。

(參考腳本編寫方法:https://www.telerik.com/forums/redirection-from-https-to-http)

if (oSession.uriContains("geticon?")) {
       oSession.host="localhost:9767";
       oSession.oRequest.headers.UriScheme="http";
       }
// 將full-url帶有g(shù)eticon字符的請求重定向到本地9767端口,并使用無加密的http協(xié)議進行傳輸

相關(guān)案例查看更多