
anyproxy
爬蟲(chóng)|利用Anyproxy爬取微信公眾號文章及臨時(shí)鏈接轉永久鏈接
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 697 次瀏覽 ? 2020-08-03 16:02
一、先說(shuō)整體的解決方案
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。
2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。
3、通過(guò)按鍵精靈模擬或Python腳本在微信號上發(fā)送臨時(shí)鏈接內容文章采集鏈接,只有在安卓模擬器上的微信號上發(fā)送了內容,Anyproxy代理能夠抓取到相關(guān)的包內容。
二、再說(shuō)具體的解決方案,主要是第2點(diǎn)
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。在用這個(gè)做數據采集時(shí),經(jīng)常會(huì )出現“請輸入驗證碼”。我嘗試用IP代理池,但目前仍未找到可以避免或叫解決這個(gè)問(wèn)題的IP代理服務(wù)器。我這塊的處理方法是用動(dòng)態(tài)IP VPS服務(wù)解決。具體的解決步驟我這塊就不細講啦文章采集鏈接,因為這個(gè)不是本文章的重點(diǎn)。
2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。我用的是win10系統。
1)一個(gè)陌陌客戶(hù)端:下載一個(gè)安卓模擬器,在這個(gè)模擬器上安裝一個(gè)陌陌app。
2)一個(gè)陌陌個(gè)人號:為了采集內容除了須要陌陌客戶(hù)端,還要有一個(gè)陌陌個(gè)人號專(zhuān)門(mén)用于發(fā)送臨時(shí)鏈接。
3)本地代理服務(wù)器系統:使用的方式是通過(guò)Anyproxy代理服務(wù)器將臨時(shí)鏈接和永久鏈接發(fā)送到我們自己的服務(wù)器上進(jìn)行替換。具體安裝設置方式在前面詳盡介紹。
我使用的是Anyproxy。這個(gè)軟件的特性是可以獲取到https鏈接的內容。在2016年年初的時(shí)侯微信公眾號和陌陌文章開(kāi)始使用https鏈接。并且Anyproxy可以通過(guò)更改rule向服務(wù)器發(fā)送懇求。下面開(kāi)始介紹安裝與配置過(guò)程。
1、安裝NodeJS
2、在命令行或則終端運行 npm install -g anyproxy
3、生成RootCA,https須要這個(gè)證書(shū):運行命令anyproxy --root
4、啟動(dòng)anyproxy運行命令:win+R打開(kāi)運行,輸入anyproxy -i;參數-i是解析HTTPS的意思;
5、安裝證書(shū),在安卓模擬器中安裝證書(shū):?jiǎn)?dòng)anyproxy,瀏覽器打開(kāi):8002/fetchCrtFile,能獲取rootCA.crt文件
6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)段,可以通過(guò)把dhcp設置為靜態(tài)后見(jiàn)到網(wǎng)段地址,看完后別忘了再設置為手動(dòng)。代理服務(wù)器默認端口是8001。
檢測是否成功方式:打開(kāi)模擬器上的陌陌,點(diǎn)擊到任意一個(gè)文章中,在終端都可以見(jiàn)到響應的代碼滾動(dòng)。如果沒(méi)有出現,請復查手機的代理設置是否正確。我下邊的截圖是打開(kāi)瀏覽器地址:8002見(jiàn)到anyproxy的web界面。
我在陌陌app上打開(kāi)的是文章的臨時(shí)鏈接,通過(guò)合同剖析可以曉得永久鏈接是重定向到302時(shí)的location中。
4)修改Anyproxy文件rule_default.js,獲取抓包中的合同內容。
rule_default.js文件在*\node_modules\anyproxy\lib\rule_default.js中,找到replaceServerResDataAsync: function(req,res,serverResData,callback) 函數,修改函數內容,劫取須要的內容。因為我只須要劫取返回為302的code內容,所以我只有當statusCode==302時(shí)才callback。
找到replaceResponseHeader: function(req,res,header)函數,修改函數內容。獲取永久鏈接,調用我在服務(wù)器寫(xiě)好的http插口,我那邊插口只有兩個(gè)參數:臨時(shí)鏈接和永久鏈接,根據臨時(shí)鏈接降低永久鏈接。
好,到目前為止,通過(guò)使用Anyproxy把臨時(shí)鏈接轉永久鏈接的功能介紹完成啦。
PS:使用Anyproxy可以直接獲取微信公眾號的全部文章(永久鏈接),包括點(diǎn)贊數,閱讀數之類(lèi)的信息。這樣的話(huà)可以不用使用搜狗。不過(guò)這兒會(huì )有些問(wèn)題,微信會(huì )封你在做這個(gè)事情的陌陌個(gè)人號,所以我采取的是使用搜狗爬文章(急),再借助Anyproxy在臨時(shí)鏈接有效時(shí)間內更新為永久鏈接。
3、通過(guò)按鍵精靈模擬在陌陌app上點(diǎn)擊臨時(shí)鏈接,或者也可以通過(guò)python腳本模擬。這塊我正在編撰,等完成以后再更新上來(lái)。 查看全部

一、先說(shuō)整體的解決方案
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。

2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。

3、通過(guò)按鍵精靈模擬或Python腳本在微信號上發(fā)送臨時(shí)鏈接內容文章采集鏈接,只有在安卓模擬器上的微信號上發(fā)送了內容,Anyproxy代理能夠抓取到相關(guān)的包內容。
二、再說(shuō)具體的解決方案,主要是第2點(diǎn)
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。在用這個(gè)做數據采集時(shí),經(jīng)常會(huì )出現“請輸入驗證碼”。我嘗試用IP代理池,但目前仍未找到可以避免或叫解決這個(gè)問(wèn)題的IP代理服務(wù)器。我這塊的處理方法是用動(dòng)態(tài)IP VPS服務(wù)解決。具體的解決步驟我這塊就不細講啦文章采集鏈接,因為這個(gè)不是本文章的重點(diǎn)。

2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。我用的是win10系統。
1)一個(gè)陌陌客戶(hù)端:下載一個(gè)安卓模擬器,在這個(gè)模擬器上安裝一個(gè)陌陌app。
2)一個(gè)陌陌個(gè)人號:為了采集內容除了須要陌陌客戶(hù)端,還要有一個(gè)陌陌個(gè)人號專(zhuān)門(mén)用于發(fā)送臨時(shí)鏈接。
3)本地代理服務(wù)器系統:使用的方式是通過(guò)Anyproxy代理服務(wù)器將臨時(shí)鏈接和永久鏈接發(fā)送到我們自己的服務(wù)器上進(jìn)行替換。具體安裝設置方式在前面詳盡介紹。
我使用的是Anyproxy。這個(gè)軟件的特性是可以獲取到https鏈接的內容。在2016年年初的時(shí)侯微信公眾號和陌陌文章開(kāi)始使用https鏈接。并且Anyproxy可以通過(guò)更改rule向服務(wù)器發(fā)送懇求。下面開(kāi)始介紹安裝與配置過(guò)程。
1、安裝NodeJS
2、在命令行或則終端運行 npm install -g anyproxy
3、生成RootCA,https須要這個(gè)證書(shū):運行命令anyproxy --root
4、啟動(dòng)anyproxy運行命令:win+R打開(kāi)運行,輸入anyproxy -i;參數-i是解析HTTPS的意思;
5、安裝證書(shū),在安卓模擬器中安裝證書(shū):?jiǎn)?dòng)anyproxy,瀏覽器打開(kāi):8002/fetchCrtFile,能獲取rootCA.crt文件
6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)段,可以通過(guò)把dhcp設置為靜態(tài)后見(jiàn)到網(wǎng)段地址,看完后別忘了再設置為手動(dòng)。代理服務(wù)器默認端口是8001。

檢測是否成功方式:打開(kāi)模擬器上的陌陌,點(diǎn)擊到任意一個(gè)文章中,在終端都可以見(jiàn)到響應的代碼滾動(dòng)。如果沒(méi)有出現,請復查手機的代理設置是否正確。我下邊的截圖是打開(kāi)瀏覽器地址:8002見(jiàn)到anyproxy的web界面。

我在陌陌app上打開(kāi)的是文章的臨時(shí)鏈接,通過(guò)合同剖析可以曉得永久鏈接是重定向到302時(shí)的location中。
4)修改Anyproxy文件rule_default.js,獲取抓包中的合同內容。
rule_default.js文件在*\node_modules\anyproxy\lib\rule_default.js中,找到replaceServerResDataAsync: function(req,res,serverResData,callback) 函數,修改函數內容,劫取須要的內容。因為我只須要劫取返回為302的code內容,所以我只有當statusCode==302時(shí)才callback。

找到replaceResponseHeader: function(req,res,header)函數,修改函數內容。獲取永久鏈接,調用我在服務(wù)器寫(xiě)好的http插口,我那邊插口只有兩個(gè)參數:臨時(shí)鏈接和永久鏈接,根據臨時(shí)鏈接降低永久鏈接。

好,到目前為止,通過(guò)使用Anyproxy把臨時(shí)鏈接轉永久鏈接的功能介紹完成啦。
PS:使用Anyproxy可以直接獲取微信公眾號的全部文章(永久鏈接),包括點(diǎn)贊數,閱讀數之類(lèi)的信息。這樣的話(huà)可以不用使用搜狗。不過(guò)這兒會(huì )有些問(wèn)題,微信會(huì )封你在做這個(gè)事情的陌陌個(gè)人號,所以我采取的是使用搜狗爬文章(急),再借助Anyproxy在臨時(shí)鏈接有效時(shí)間內更新為永久鏈接。
3、通過(guò)按鍵精靈模擬在陌陌app上點(diǎn)擊臨時(shí)鏈接,或者也可以通過(guò)python腳本模擬。這塊我正在編撰,等完成以后再更新上來(lái)。
爬蟲(chóng)|利用Anyproxy爬取微信公眾號文章及臨時(shí)鏈接轉永久鏈接
采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 697 次瀏覽 ? 2020-08-03 16:02
一、先說(shuō)整體的解決方案
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。
2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。
3、通過(guò)按鍵精靈模擬或Python腳本在微信號上發(fā)送臨時(shí)鏈接內容文章采集鏈接,只有在安卓模擬器上的微信號上發(fā)送了內容,Anyproxy代理能夠抓取到相關(guān)的包內容。
二、再說(shuō)具體的解決方案,主要是第2點(diǎn)
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。在用這個(gè)做數據采集時(shí),經(jīng)常會(huì )出現“請輸入驗證碼”。我嘗試用IP代理池,但目前仍未找到可以避免或叫解決這個(gè)問(wèn)題的IP代理服務(wù)器。我這塊的處理方法是用動(dòng)態(tài)IP VPS服務(wù)解決。具體的解決步驟我這塊就不細講啦文章采集鏈接,因為這個(gè)不是本文章的重點(diǎn)。
2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。我用的是win10系統。
1)一個(gè)陌陌客戶(hù)端:下載一個(gè)安卓模擬器,在這個(gè)模擬器上安裝一個(gè)陌陌app。
2)一個(gè)陌陌個(gè)人號:為了采集內容除了須要陌陌客戶(hù)端,還要有一個(gè)陌陌個(gè)人號專(zhuān)門(mén)用于發(fā)送臨時(shí)鏈接。
3)本地代理服務(wù)器系統:使用的方式是通過(guò)Anyproxy代理服務(wù)器將臨時(shí)鏈接和永久鏈接發(fā)送到我們自己的服務(wù)器上進(jìn)行替換。具體安裝設置方式在前面詳盡介紹。
我使用的是Anyproxy。這個(gè)軟件的特性是可以獲取到https鏈接的內容。在2016年年初的時(shí)侯微信公眾號和陌陌文章開(kāi)始使用https鏈接。并且Anyproxy可以通過(guò)更改rule向服務(wù)器發(fā)送懇求。下面開(kāi)始介紹安裝與配置過(guò)程。
1、安裝NodeJS
2、在命令行或則終端運行 npm install -g anyproxy
3、生成RootCA,https須要這個(gè)證書(shū):運行命令anyproxy --root
4、啟動(dòng)anyproxy運行命令:win+R打開(kāi)運行,輸入anyproxy -i;參數-i是解析HTTPS的意思;
5、安裝證書(shū),在安卓模擬器中安裝證書(shū):?jiǎn)?dòng)anyproxy,瀏覽器打開(kāi):8002/fetchCrtFile,能獲取rootCA.crt文件
6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)段,可以通過(guò)把dhcp設置為靜態(tài)后見(jiàn)到網(wǎng)段地址,看完后別忘了再設置為手動(dòng)。代理服務(wù)器默認端口是8001。
檢測是否成功方式:打開(kāi)模擬器上的陌陌,點(diǎn)擊到任意一個(gè)文章中,在終端都可以見(jiàn)到響應的代碼滾動(dòng)。如果沒(méi)有出現,請復查手機的代理設置是否正確。我下邊的截圖是打開(kāi)瀏覽器地址:8002見(jiàn)到anyproxy的web界面。
我在陌陌app上打開(kāi)的是文章的臨時(shí)鏈接,通過(guò)合同剖析可以曉得永久鏈接是重定向到302時(shí)的location中。
4)修改Anyproxy文件rule_default.js,獲取抓包中的合同內容。
rule_default.js文件在*\node_modules\anyproxy\lib\rule_default.js中,找到replaceServerResDataAsync: function(req,res,serverResData,callback) 函數,修改函數內容,劫取須要的內容。因為我只須要劫取返回為302的code內容,所以我只有當statusCode==302時(shí)才callback。
找到replaceResponseHeader: function(req,res,header)函數,修改函數內容。獲取永久鏈接,調用我在服務(wù)器寫(xiě)好的http插口,我那邊插口只有兩個(gè)參數:臨時(shí)鏈接和永久鏈接,根據臨時(shí)鏈接降低永久鏈接。
好,到目前為止,通過(guò)使用Anyproxy把臨時(shí)鏈接轉永久鏈接的功能介紹完成啦。
PS:使用Anyproxy可以直接獲取微信公眾號的全部文章(永久鏈接),包括點(diǎn)贊數,閱讀數之類(lèi)的信息。這樣的話(huà)可以不用使用搜狗。不過(guò)這兒會(huì )有些問(wèn)題,微信會(huì )封你在做這個(gè)事情的陌陌個(gè)人號,所以我采取的是使用搜狗爬文章(急),再借助Anyproxy在臨時(shí)鏈接有效時(shí)間內更新為永久鏈接。
3、通過(guò)按鍵精靈模擬在陌陌app上點(diǎn)擊臨時(shí)鏈接,或者也可以通過(guò)python腳本模擬。這塊我正在編撰,等完成以后再更新上來(lái)。 查看全部

一、先說(shuō)整體的解決方案
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。

2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。

3、通過(guò)按鍵精靈模擬或Python腳本在微信號上發(fā)送臨時(shí)鏈接內容文章采集鏈接,只有在安卓模擬器上的微信號上發(fā)送了內容,Anyproxy代理能夠抓取到相關(guān)的包內容。
二、再說(shuō)具體的解決方案,主要是第2點(diǎn)
1、通過(guò)搜狗進(jìn)行公眾號文章的采集,這樣獲取到的文章URL是一個(gè)帶時(shí)間戳的臨時(shí)鏈接。在用這個(gè)做數據采集時(shí),經(jīng)常會(huì )出現“請輸入驗證碼”。我嘗試用IP代理池,但目前仍未找到可以避免或叫解決這個(gè)問(wèn)題的IP代理服務(wù)器。我這塊的處理方法是用動(dòng)態(tài)IP VPS服務(wù)解決。具體的解決步驟我這塊就不細講啦文章采集鏈接,因為這個(gè)不是本文章的重點(diǎn)。

2、通過(guò)安卓模擬器+Anyproxy代理抓包剖析陌陌客戶(hù)端打開(kāi)臨時(shí)鏈接時(shí)與其服務(wù)器懇求的合同內容,得出永久鏈接。我用的是win10系統。
1)一個(gè)陌陌客戶(hù)端:下載一個(gè)安卓模擬器,在這個(gè)模擬器上安裝一個(gè)陌陌app。
2)一個(gè)陌陌個(gè)人號:為了采集內容除了須要陌陌客戶(hù)端,還要有一個(gè)陌陌個(gè)人號專(zhuān)門(mén)用于發(fā)送臨時(shí)鏈接。
3)本地代理服務(wù)器系統:使用的方式是通過(guò)Anyproxy代理服務(wù)器將臨時(shí)鏈接和永久鏈接發(fā)送到我們自己的服務(wù)器上進(jìn)行替換。具體安裝設置方式在前面詳盡介紹。
我使用的是Anyproxy。這個(gè)軟件的特性是可以獲取到https鏈接的內容。在2016年年初的時(shí)侯微信公眾號和陌陌文章開(kāi)始使用https鏈接。并且Anyproxy可以通過(guò)更改rule向服務(wù)器發(fā)送懇求。下面開(kāi)始介紹安裝與配置過(guò)程。
1、安裝NodeJS
2、在命令行或則終端運行 npm install -g anyproxy
3、生成RootCA,https須要這個(gè)證書(shū):運行命令anyproxy --root
4、啟動(dòng)anyproxy運行命令:win+R打開(kāi)運行,輸入anyproxy -i;參數-i是解析HTTPS的意思;
5、安裝證書(shū),在安卓模擬器中安裝證書(shū):?jiǎn)?dòng)anyproxy,瀏覽器打開(kāi):8002/fetchCrtFile,能獲取rootCA.crt文件
6、設置代理:安卓模擬器的代理服務(wù)器地址是wifi鏈接的網(wǎng)段,可以通過(guò)把dhcp設置為靜態(tài)后見(jiàn)到網(wǎng)段地址,看完后別忘了再設置為手動(dòng)。代理服務(wù)器默認端口是8001。

檢測是否成功方式:打開(kāi)模擬器上的陌陌,點(diǎn)擊到任意一個(gè)文章中,在終端都可以見(jiàn)到響應的代碼滾動(dòng)。如果沒(méi)有出現,請復查手機的代理設置是否正確。我下邊的截圖是打開(kāi)瀏覽器地址:8002見(jiàn)到anyproxy的web界面。

我在陌陌app上打開(kāi)的是文章的臨時(shí)鏈接,通過(guò)合同剖析可以曉得永久鏈接是重定向到302時(shí)的location中。
4)修改Anyproxy文件rule_default.js,獲取抓包中的合同內容。
rule_default.js文件在*\node_modules\anyproxy\lib\rule_default.js中,找到replaceServerResDataAsync: function(req,res,serverResData,callback) 函數,修改函數內容,劫取須要的內容。因為我只須要劫取返回為302的code內容,所以我只有當statusCode==302時(shí)才callback。

找到replaceResponseHeader: function(req,res,header)函數,修改函數內容。獲取永久鏈接,調用我在服務(wù)器寫(xiě)好的http插口,我那邊插口只有兩個(gè)參數:臨時(shí)鏈接和永久鏈接,根據臨時(shí)鏈接降低永久鏈接。

好,到目前為止,通過(guò)使用Anyproxy把臨時(shí)鏈接轉永久鏈接的功能介紹完成啦。
PS:使用Anyproxy可以直接獲取微信公眾號的全部文章(永久鏈接),包括點(diǎn)贊數,閱讀數之類(lèi)的信息。這樣的話(huà)可以不用使用搜狗。不過(guò)這兒會(huì )有些問(wèn)題,微信會(huì )封你在做這個(gè)事情的陌陌個(gè)人號,所以我采取的是使用搜狗爬文章(急),再借助Anyproxy在臨時(shí)鏈接有效時(shí)間內更新為永久鏈接。
3、通過(guò)按鍵精靈模擬在陌陌app上點(diǎn)擊臨時(shí)鏈接,或者也可以通過(guò)python腳本模擬。這塊我正在編撰,等完成以后再更新上來(lái)。