小編給大家分享一下python如何實(shí)現(xiàn)微信公眾號(hào)文章爬取,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比玉泉網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式玉泉網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋玉泉地區(qū)。費(fèi)用合理售后完善,十載實(shí)體公司更值得信賴。
具體步驟如下:
一、安裝代理服務(wù)器
目前使用的是Anyproxy。這個(gè)軟件的特點(diǎn)是可以獲取到https鏈接的內(nèi)容。
1.1 在命令行或者終端運(yùn)行 npm install -g anyproxy,mac系統(tǒng)需要加上sudo;
1.2 生成RootCA,https需要這個(gè)證書:運(yùn)行命令sudo anyproxy --root(windows可能不需要sudo);
1.3 啟動(dòng)anyproxy運(yùn)行命令:sudo anyproxy -i;參數(shù)-i是解析HTTPS的意思;
1.4 安裝證書,在手機(jī)中安裝證書,手機(jī)瀏覽器打開 http://localhost:8002/fetchCrtFile ,能獲取rootCA.crt文件。
localhost修改為運(yùn)行anyproxy的電腦的ip地址,注意手機(jī)跟電腦要位于同一個(gè)局域網(wǎng)哦。
1.5 設(shè)置代理:在手機(jī)wifi連接管理中,設(shè)置代理,代理服務(wù)器地址就是運(yùn)行anyproxy的電腦的ip地址。代理服務(wù)器默認(rèn)端口是8001;
現(xiàn)在打開微信,點(diǎn)擊到任意一個(gè)公眾號(hào)歷史消息或文章中,在終端都可以看到響應(yīng)的代碼滾動(dòng)。
1.6 電腦打開瀏覽器地址http://localhost:8002 可以看到anyproxy的web界面。從微信中點(diǎn)開一個(gè)歷史消息頁(yè)面,然后再看瀏覽器的web界面,會(huì)滾動(dòng)出現(xiàn)歷史消息頁(yè)面的地址。
二、用SPY爬取文章列表
由于要保存到數(shù)據(jù)庫(kù)里,所以我動(dòng)用了自己開發(fā)的SPY爬蟲軟件,如果不需要保存到數(shù)據(jù)庫(kù),用chrome就可以了。
2.1 手機(jī)打開公眾號(hào)的歷史文章列表,下拉至最底下,把所有文章都加載出來(lái)。
2.2 打開SPY,輸入地址http://localhost:8002,貼入代碼。
代碼大致的邏輯是:
a、獲取mp/profile_ext?action=home&__biz=MzA3ODkyNDg4OA=
中獲取到的文章列表數(shù)據(jù)。
b、由于文章列表數(shù)據(jù)是異步加載的,所以暫時(shí)需要手工在手機(jī)里把下拉文章列表,把所有的文章加載進(jìn)來(lái)。
c、然后,SPY里把所有的文章數(shù)據(jù)提取出來(lái),保存到數(shù)據(jù)庫(kù)里。
代碼如下:
var results = [];
var doms = document.querySelectorAll('.record_status_done');
var pages = [];
doms.forEach(function(dom, i) {
var isUrl = dom.children[4].getAttribute('title');
if (isUrl.match(/\/mp\/profile\_ext\?action\=getmsg\&/i)) {
pages.push(dom);
}
});
var step = 0;
stepByStep();
function stepByStep() {
pages[step].click();
var res;
setTimeout(function() {
if (document.querySelector('.resBodyContent')) {
res = JSON.parse(JSON.parse(document.querySelector('.resBodyContent').innerText).general_msg_list).list;
}
if (res) {
res.forEach(function(r, i) {
if (r.app_msg_ext_info) {
var target = r.app_msg_ext_info;
console.log(target, step, 'num');
var obj_save = {
author: target.author,
content_url: target.content_url,
cover: target.cover,
digest: target.digest,
title: target.title,
};
spy.save(obj_save);
results.push(obj_save);
console.log(results.length, step);
}
});
} else {
console.log(res, document.querySelector('.resBodyContent'))
}
step = step + 1;
setTimeout(function() {
document.querySelector('.escBtn').click();
}, 1000);
if (step < pages.length) {
setTimeout(function() {
window.stepByStep();
}, 3000);
} else {
spy.getResult(results)
}
}, 1000);
};
以上是“python如何實(shí)現(xiàn)微信公眾號(hào)文章爬取”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
當(dāng)前標(biāo)題:python如何實(shí)現(xiàn)微信公眾號(hào)文章爬取
當(dāng)前網(wǎng)址:http://chinadenli.net/article2/ihsjoc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、ChatGPT、服務(wù)器托管、關(guān)鍵詞優(yōu)化、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)