亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久

querylist采集微信公眾號文章

querylist采集微信公眾號文章

querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 177 次瀏覽 ? 2022-03-11 16:27 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
  之前自己維護了一個(gè)公眾號,但是因為個(gè)人關(guān)系,很久沒(méi)有更新了。今天來(lái)緬懷一下,偶然發(fā)現了一個(gè)獲取微信公眾號文章的方法。
  之前的獲取方式有很多??梢酝ㄟ^(guò)搜狗、青博、網(wǎng)頁(yè)、客戶(hù)端等方式使用,這個(gè)可能不如其他的好,但是操作簡(jiǎn)單易懂。
  所以,首先你需要有一個(gè)微信公眾平臺的賬號
  微信公眾平臺:
  
  登錄后進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
  
  選擇自創(chuàng )圖形:
  
  好像是公眾號運營(yíng)教學(xué)
  進(jìn)入編輯頁(yè)面后,單擊超鏈接
  
  彈出選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表。
  
  可以打開(kāi)控制臺查看請求的界面,這不奇怪嗎
  
  打開(kāi)響應,也就是我們需要的 文章 鏈接
  
  確定數據后,我們需要對接口進(jìn)行分析。
  感覺(jué)很簡(jiǎn)單,一個(gè)GET請求,攜帶一些參數。
  
  fakeid 是公眾號的唯一 ID,所以如果要直接通過(guò)名稱(chēng)獲取 文章 的列表,則需要先獲取 fakeid。
  當我們輸入公眾號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹接|發(fā)了搜索界面,返回了fakeid。
  
  這個(gè)接口不需要很多參數。
  
  接下來(lái),我們可以使用代碼來(lái)模擬上述操作。
  但是,也有必要使用現有的 cookie 來(lái)避免登錄。
  
  當前的cookie過(guò)期日期,我沒(méi)有測試過(guò)??赡苄枰粫r(shí)更新 cookie。
  測試代碼:
  
import requests
import json
Cookie = "請換上自己的Cookie,獲取方法:直接復制下來(lái)"
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": "Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36"
}
keyword = "pythonlx" # 公眾號名字:可自定義
token = "你的token" # 獲取方法:如上述 直接復制下來(lái)
search_url = "https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1".format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext["list"][0]["fakeid"]
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
  這樣就可以獲得最新的10篇文章文章。如果想獲取更多歷史文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
  但如果你想大規模刮:
  請為自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,并準備好多個(gè)賬號,以減少被封號的可能性。
  以上就是本文的全部?jì)热?,希望對大家的學(xué)習有所幫助,也希望大家多多支持云海天教程。 查看全部

  querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
  之前自己維護了一個(gè)公眾號,但是因為個(gè)人關(guān)系,很久沒(méi)有更新了。今天來(lái)緬懷一下,偶然發(fā)現了一個(gè)獲取微信公眾號文章的方法。
  之前的獲取方式有很多??梢酝ㄟ^(guò)搜狗、青博、網(wǎng)頁(yè)、客戶(hù)端等方式使用,這個(gè)可能不如其他的好,但是操作簡(jiǎn)單易懂。
  所以,首先你需要有一個(gè)微信公眾平臺的賬號
  微信公眾平臺:
  
  登錄后進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
  
  選擇自創(chuàng )圖形:
  
  好像是公眾號運營(yíng)教學(xué)
  進(jìn)入編輯頁(yè)面后,單擊超鏈接
  
  彈出選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表。
  
  可以打開(kāi)控制臺查看請求的界面,這不奇怪嗎
  
  打開(kāi)響應,也就是我們需要的 文章 鏈接
  
  確定數據后,我們需要對接口進(jìn)行分析。
  感覺(jué)很簡(jiǎn)單,一個(gè)GET請求,攜帶一些參數。
  
  fakeid 是公眾號的唯一 ID,所以如果要直接通過(guò)名稱(chēng)獲取 文章 的列表,則需要先獲取 fakeid。
  當我們輸入公眾號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹接|發(fā)了搜索界面,返回了fakeid。
  
  這個(gè)接口不需要很多參數。
  
  接下來(lái),我們可以使用代碼來(lái)模擬上述操作。
  但是,也有必要使用現有的 cookie 來(lái)避免登錄。
  
  當前的cookie過(guò)期日期,我沒(méi)有測試過(guò)??赡苄枰粫r(shí)更新 cookie。
  測試代碼:
  
import requests
import json
Cookie = "請換上自己的Cookie,獲取方法:直接復制下來(lái)"
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": "Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36"
}
keyword = "pythonlx" # 公眾號名字:可自定義
token = "你的token" # 獲取方法:如上述 直接復制下來(lái)
search_url = "https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1".format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext["list"][0]["fakeid"]
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
  這樣就可以獲得最新的10篇文章文章。如果想獲取更多歷史文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
  但如果你想大規模刮:
  請為自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,并準備好多個(gè)賬號,以減少被封號的可能性。
  以上就是本文的全部?jì)热?,希望對大家的學(xué)習有所幫助,也希望大家多多支持云海天教程。

querylist采集微信公眾號文章(爬取大牛用微信公眾號爬取程序的難點(diǎn)及解決辦法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 149 次瀏覽 ? 2022-03-11 16:25 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(爬取大牛用微信公眾號爬取程序的難點(diǎn)及解決辦法)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  附上大牛的鏈接文章:寫(xiě)php或者只需要爬取思路的可以直接看這個(gè)。這些想法寫(xiě)得很詳細。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   
  記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
   1 replaceServerResDataAsync: function(req,res,serverResData,callback){
2 if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
3 //console.log("開(kāi)始第一種頁(yè)面爬取");
4 if(serverResData.toString() !== ""){
5 6 try {//防止報錯退出程序
7 var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
8 var ret = reg.exec(serverResData.toString());//轉換變量為string
9 HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
10 var http = require('http');
11 http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
12 res.on('data', function(chunk){
13 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
14 })
15 });
16 }catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
17 //console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
18 try {
19 var json = JSON.parse(serverResData.toString());
20 if (json.general_msg_list != []) {
21 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
22 }
23 }catch(e){
24 console.log(e);//錯誤捕捉
25 }
26 callback(serverResData);//直接返回第二頁(yè)json內容
27 }
28 }
29 //console.log("開(kāi)始第一種頁(yè)面爬取 結束");
30 }else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
31 try {
32 var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
33 var ret = reg.exec(serverResData.toString());//轉換變量為string
34 HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
35 var http = require('http');
36 http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
37 res.on('data', function(chunk){
38 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
39 })
40 });
41 }catch(e){
42 //console.log(e);
43 callback(serverResData);
44 }
45 }else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
46 try {
47 var json = JSON.parse(serverResData.toString());
48 if (json.general_msg_list != []) {
49 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
50 }
51 }catch(e){
52 console.log(e);
53 }
54 callback(serverResData);
55 }else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
56 try {
57 HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
58 }catch(e){
59
60 }
61 callback(serverResData);
62 }else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
63 try {
64 var http = require('http');
65 http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
66 res.on('data', function(chunk){
67 callback(chunk+serverResData);
68 })
69 });
70 }catch(e){
71 callback(serverResData);
72 }
73 }else{
74 callback(serverResData);
75 }
76 //callback(serverResData);
77 },
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。 查看全部

  querylist采集微信公眾號文章(爬取大牛用微信公眾號爬取程序的難點(diǎn)及解決辦法)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  附上大牛的鏈接文章:寫(xiě)php或者只需要爬取思路的可以直接看這個(gè)。這些想法寫(xiě)得很詳細。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   
  記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
   1 replaceServerResDataAsync: function(req,res,serverResData,callback){
2 if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
3 //console.log("開(kāi)始第一種頁(yè)面爬取");
4 if(serverResData.toString() !== ""){
5 6 try {//防止報錯退出程序
7 var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
8 var ret = reg.exec(serverResData.toString());//轉換變量為string
9 HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
10 var http = require('http');
11 http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
12 res.on('data', function(chunk){
13 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
14 })
15 });
16 }catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
17 //console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
18 try {
19 var json = JSON.parse(serverResData.toString());
20 if (json.general_msg_list != []) {
21 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
22 }
23 }catch(e){
24 console.log(e);//錯誤捕捉
25 }
26 callback(serverResData);//直接返回第二頁(yè)json內容
27 }
28 }
29 //console.log("開(kāi)始第一種頁(yè)面爬取 結束");
30 }else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
31 try {
32 var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
33 var ret = reg.exec(serverResData.toString());//轉換變量為string
34 HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
35 var http = require('http');
36 http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
37 res.on('data', function(chunk){
38 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
39 })
40 });
41 }catch(e){
42 //console.log(e);
43 callback(serverResData);
44 }
45 }else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
46 try {
47 var json = JSON.parse(serverResData.toString());
48 if (json.general_msg_list != []) {
49 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
50 }
51 }catch(e){
52 console.log(e);
53 }
54 callback(serverResData);
55 }else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
56 try {
57 HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
58 }catch(e){
59
60 }
61 callback(serverResData);
62 }else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
63 try {
64 var http = require('http');
65 http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
66 res.on('data', function(chunk){
67 callback(chunk+serverResData);
68 })
69 });
70 }catch(e){
71 callback(serverResData);
72 }
73 }else{
74 callback(serverResData);
75 }
76 //callback(serverResData);
77 },
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。

querylist采集微信公眾號文章( 小編來(lái)一起通過(guò)示例代碼介紹的詳細學(xué)習方法(二))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 372 次瀏覽 ? 2022-03-09 09:14 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
小編來(lái)一起通過(guò)示例代碼介紹的詳細學(xué)習方法(二))
  Python微信公眾號文章爬取示例代碼
  更新時(shí)間:2020-11-30 08:31:45 作者:智小白
  本文文章主要介紹Python微信公眾號文章爬取的示例代碼。文章中對示例代碼進(jìn)行了非常詳細的介紹。對大家的學(xué)習或工作有一定的參考和學(xué)習價(jià)值。需要的小伙伴一起來(lái)和小編一起學(xué)習吧
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)web鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應賬號密碼,點(diǎn)擊登錄,出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  
lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  
fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章爬取內容請搜索腳本。首頁(yè)文章或繼續瀏覽以下相關(guān)文章希望大家以后多多支持Script Home! 查看全部

  querylist采集微信公眾號文章(
小編來(lái)一起通過(guò)示例代碼介紹的詳細學(xué)習方法(二))
  Python微信公眾號文章爬取示例代碼
  更新時(shí)間:2020-11-30 08:31:45 作者:智小白
  本文文章主要介紹Python微信公眾號文章爬取的示例代碼。文章中對示例代碼進(jìn)行了非常詳細的介紹。對大家的學(xué)習或工作有一定的參考和學(xué)習價(jià)值。需要的小伙伴一起來(lái)和小編一起學(xué)習吧
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)web鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應賬號密碼,點(diǎn)擊登錄,出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  
lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  
fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章爬取內容請搜索腳本。首頁(yè)文章或繼續瀏覽以下相關(guān)文章希望大家以后多多支持Script Home!

querylist采集微信公眾號文章(querylist采集微信公眾號文章歷史文章,文章精度達到10-20)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2022-03-07 21:04 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章歷史文章,文章精度達到10-20)
  querylist采集微信公眾號文章歷史文章,文章精度可以達到10-20,并且支持全自動(dòng)重復、非自動(dòng)重復,根據用戶(hù)使用習慣、內容質(zhì)量、微信轉發(fā)量自動(dòng)切換頻率。1querylist簡(jiǎn)介querylist是一個(gè)query引擎,其基于微信公眾號文章api的下載、抓取數據等模塊,對api調用進(jìn)行封裝。其主要目的是為后面進(jìn)行微信公眾號文章原始爬取、微信文章url抓取,中間的分詞等底層實(shí)現的封裝。
  queryset在微信中已有的webviewtextfield對象。queryset封裝了page對象,包含了通過(guò)一些統一api來(lái)獲取query的目標網(wǎng)頁(yè)的document對象,以及可能封裝的另外一些api,比如返回結果所對應的頁(yè)面布局名。2用例3webview分頁(yè)爬?。?。
  1)webview分頁(yè)抓取
  1、發(fā)現頁(yè)代碼分詞
  2、querylist過(guò)濾關(guān)鍵詞
  3、webview網(wǎng)頁(yè)抓取
  4、webview布局抓取
  5、webviewurl獲取
  6、頁(yè)面抓取結果保存
  7、爬取到頁(yè)面的圖片和視頻
  8、保存數據并發(fā)布公眾號文章內容3page實(shí)現imgurl解析
  2)egret中的imgurlwithloadret中以url的形式獲取imgurlurl,由于微信公眾號的文章url是不能修改的,可以理解為用url在大數據庫中找list的位置。使用一個(gè)生成器(webviewpath)去循環(huán)獲取每一個(gè)頁(yè)面鏈接的imgurlurl。這里有一個(gè)小坑需要注意。因為微信公眾號的文章是爬取到一定量后統一發(fā)布,所以當服務(wù)器返回解析結果在imgurlurl后是一個(gè)對象,然后再通過(guò)txt中的url獲取對應imgurl。
  url獲取方式是一個(gè)通用的方法,由于沒(méi)有更多必要的方法,所以最好避免在請求獲取url時(shí)使用name實(shí)例,應該直接使用實(shí)際爬取的頁(yè)面id。微信在處理過(guò)程中,會(huì )優(yōu)先保證我們獲取的url是可以正常使用的,如果某個(gè)頁(yè)面的url無(wú)法獲取到是會(huì )返回異常。下面來(lái)看一下微信是如何去獲取文章url中的字符串值的。
  首先f(wàn)unctiongetmessages(mode){varpage=math.max(mode,page)varquerystr=math.min(math.random()*100,10
  0)returnquerystr}url(https)獲取出來(lái)的是mp4,微信解析得到的querystr是通過(guò)字符串獲取,而在微信的字符串中只有十進(jìn)制數字,所以微信的解析結果中的數字不是對應imgurlurlurl的16進(jìn)制形式。再看一下我們需要獲取的url與解析出來(lái)的txt形式的imgurlurlurl之間的轉換代碼:varimgurlurl=textfield({'type':'url','name':'btn','path':'/url'}).append('/'+imgurlurl)最終,mp4圖片的url就獲取出來(lái)了。
  使用link實(shí)現顯示的代碼如下:varbuffereduseragent='myorigin:apple;user-agen。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章歷史文章,文章精度達到10-20)
  querylist采集微信公眾號文章歷史文章,文章精度可以達到10-20,并且支持全自動(dòng)重復、非自動(dòng)重復,根據用戶(hù)使用習慣、內容質(zhì)量、微信轉發(fā)量自動(dòng)切換頻率。1querylist簡(jiǎn)介querylist是一個(gè)query引擎,其基于微信公眾號文章api的下載、抓取數據等模塊,對api調用進(jìn)行封裝。其主要目的是為后面進(jìn)行微信公眾號文章原始爬取、微信文章url抓取,中間的分詞等底層實(shí)現的封裝。
  queryset在微信中已有的webviewtextfield對象。queryset封裝了page對象,包含了通過(guò)一些統一api來(lái)獲取query的目標網(wǎng)頁(yè)的document對象,以及可能封裝的另外一些api,比如返回結果所對應的頁(yè)面布局名。2用例3webview分頁(yè)爬?。?。
  1)webview分頁(yè)抓取
  1、發(fā)現頁(yè)代碼分詞
  2、querylist過(guò)濾關(guān)鍵詞
  3、webview網(wǎng)頁(yè)抓取
  4、webview布局抓取
  5、webviewurl獲取
  6、頁(yè)面抓取結果保存
  7、爬取到頁(yè)面的圖片和視頻
  8、保存數據并發(fā)布公眾號文章內容3page實(shí)現imgurl解析
  2)egret中的imgurlwithloadret中以url的形式獲取imgurlurl,由于微信公眾號的文章url是不能修改的,可以理解為用url在大數據庫中找list的位置。使用一個(gè)生成器(webviewpath)去循環(huán)獲取每一個(gè)頁(yè)面鏈接的imgurlurl。這里有一個(gè)小坑需要注意。因為微信公眾號的文章是爬取到一定量后統一發(fā)布,所以當服務(wù)器返回解析結果在imgurlurl后是一個(gè)對象,然后再通過(guò)txt中的url獲取對應imgurl。
  url獲取方式是一個(gè)通用的方法,由于沒(méi)有更多必要的方法,所以最好避免在請求獲取url時(shí)使用name實(shí)例,應該直接使用實(shí)際爬取的頁(yè)面id。微信在處理過(guò)程中,會(huì )優(yōu)先保證我們獲取的url是可以正常使用的,如果某個(gè)頁(yè)面的url無(wú)法獲取到是會(huì )返回異常。下面來(lái)看一下微信是如何去獲取文章url中的字符串值的。
  首先f(wàn)unctiongetmessages(mode){varpage=math.max(mode,page)varquerystr=math.min(math.random()*100,10
  0)returnquerystr}url(https)獲取出來(lái)的是mp4,微信解析得到的querystr是通過(guò)字符串獲取,而在微信的字符串中只有十進(jìn)制數字,所以微信的解析結果中的數字不是對應imgurlurlurl的16進(jìn)制形式。再看一下我們需要獲取的url與解析出來(lái)的txt形式的imgurlurlurl之間的轉換代碼:varimgurlurl=textfield({'type':'url','name':'btn','path':'/url'}).append('/'+imgurlurl)最終,mp4圖片的url就獲取出來(lái)了。
  使用link實(shí)現顯示的代碼如下:varbuffereduseragent='myorigin:apple;user-agen。

querylist采集微信公眾號文章(【querylist采集】chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 108 次瀏覽 ? 2022-03-07 15:01 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(【querylist采集】chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome)
  querylist采集微信公眾號文章索引用于智能推薦。chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome的googleanalytics。1.usergeneratedquerytoselectwhethertheuserisattributedtosuchaquery.2.isthereanyquerywithwhethertheusershouldhaveitemswithwhethertheuserownsthem3.googleanalytics’swhichitemsruntosharesentimentusinggoogleanalyticsandtheseeventsprettylikeavocabularytosawcreatingaquerythatrunsquerytranslationtoquerylength:---translationabout4pages,1pagesused---datetofindclosetermsifyoudon’treadapageordon’tgoogleanalyticsforlongerpages4.設置移動(dòng)端分析設置移動(dòng)端分析。
  你能說(shuō)下電腦頁(yè)面的情況嗎?可以選擇國內地址,如騰訊,方正。
  當一個(gè)人迷茫的時(shí)候,就發(fā)揮下人性,百度,360,你會(huì )找到答案,誰(shuí)都不想生病,但是生病的是很痛苦,所以我選擇喝喝下你,你病了,但是你不要難過(guò),好好休息,感情這個(gè)事情就像刮風(fēng)下雨不是你的錯,你選擇多多的過(guò)一會(huì ),只要你覺(jué)得你生活在一個(gè)美好的世界,你的生活會(huì )變的不一樣,現在你應該適應這個(gè)世界,而不是一個(gè)人感覺(jué)沒(méi)事,等老了也會(huì )找到一個(gè)讓你放松一下的,愛(ài)人。 查看全部

  querylist采集微信公眾號文章(【querylist采集】chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome)
  querylist采集微信公眾號文章索引用于智能推薦。chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome的googleanalytics。1.usergeneratedquerytoselectwhethertheuserisattributedtosuchaquery.2.isthereanyquerywithwhethertheusershouldhaveitemswithwhethertheuserownsthem3.googleanalytics’swhichitemsruntosharesentimentusinggoogleanalyticsandtheseeventsprettylikeavocabularytosawcreatingaquerythatrunsquerytranslationtoquerylength:---translationabout4pages,1pagesused---datetofindclosetermsifyoudon’treadapageordon’tgoogleanalyticsforlongerpages4.設置移動(dòng)端分析設置移動(dòng)端分析。
  你能說(shuō)下電腦頁(yè)面的情況嗎?可以選擇國內地址,如騰訊,方正。
  當一個(gè)人迷茫的時(shí)候,就發(fā)揮下人性,百度,360,你會(huì )找到答案,誰(shuí)都不想生病,但是生病的是很痛苦,所以我選擇喝喝下你,你病了,但是你不要難過(guò),好好休息,感情這個(gè)事情就像刮風(fēng)下雨不是你的錯,你選擇多多的過(guò)一會(huì ),只要你覺(jué)得你生活在一個(gè)美好的世界,你的生活會(huì )變的不一樣,現在你應該適應這個(gè)世界,而不是一個(gè)人感覺(jué)沒(méi)事,等老了也會(huì )找到一個(gè)讓你放松一下的,愛(ài)人。

querylist采集微信公眾號文章(【querylist采集】微信公眾號文章排行榜(一))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 119 次瀏覽 ? 2022-03-07 10:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(【querylist采集】微信公眾號文章排行榜(一))
  querylist采集微信公眾號文章排行榜tips:1.查看微信公眾號文章排行榜2.查看文章鏈接,以及未讀文章所在的列表。3.查看可選擇的自定義菜單,一篇文章有多個(gè)自定義菜單的話(huà),菜單是:投票、鏈接、二維碼、新聞、文章標題等。4.頁(yè)面上一個(gè)自定義菜單可添加多個(gè)自定義頁(yè)面,自定義頁(yè)面可以是專(zhuān)欄頁(yè)面、文章列表頁(yè)、或者外部鏈接等。
  5.自定義頁(yè)面中如果寫(xiě)有重復的內容,可以選擇“復制全部?jì)热荨被颉皠h除所有內容”,如果選擇刪除掉,需要先點(diǎn)擊刪除再看清內容。tips:1.web端查看;2.微信端收到消息后,我們可以打開(kāi)微信登錄帳號,然后點(diǎn)擊上圖中的querylist,查看微信公眾號文章排行榜的鏈接。
  這些平臺都只能看到這個(gè)賬號發(fā)的文章,最多能看到這個(gè)帳號所有的文章。你還可以在推薦的目錄里面找到你需要的關(guān)鍵詞。
  微博大v寫(xiě)文章,靠的就是,標題以及文章里的軟廣。特別是文章標題,如果你有一個(gè)頭銜(作者/發(fā)布者),那么恭喜你,看到大v文章的概率非常大。這就是影響渠道,也影響方法的最根本因素。其他的,看再多的內容也沒(méi)有特別大的幫助。因為大v的文章是社會(huì )化,不是自媒體。自媒體,發(fā)布的內容大多是原創(chuàng )內容,一般都有看收益。
  一般是付費訂閱內容。既然是交易,就會(huì )有一個(gè)硬性的條件,內容質(zhì)量或者粉絲數,達不到標準,再大的粉絲都沒(méi)有用。而關(guān)注微信號,并不是通過(guò)推送的形式,微信號是通過(guò)按鈕來(lái)展示內容。微信的推送形式,方式比較多,包括轉發(fā)文章,點(diǎn)贊文章,收藏文章,贊賞文章,通知自己有文章可閱讀,推送文章,后臺接收文章閱讀數據。所以,微信號能推送的內容非常多,但是不能多且快的推送,依然是事倍功半。
  回過(guò)頭來(lái)說(shuō),我們開(kāi)放多頭銜,多頭銜基本上就是訂閱源的一個(gè)狀態(tài),比如你關(guān)注了高考幫,那么你可以自己選擇個(gè)別微信號或者微信公眾號,進(jìn)行關(guān)注,但是只能看到你關(guān)注的自己關(guān)注的微信號的內容。但是并不代表你可以隨意的取消關(guān)注。我們公司有自己發(fā)的小說(shuō),微信號的公眾號,大家隨意關(guān)注了就好。這是不允許的。只要你關(guān)注的是官方的,比如每日一刊,每日一更,每日一談等,那么這些號就是完全公平的對外發(fā)布的內容,這個(gè)對于你我來(lái)說(shuō),其實(shí)只是時(shí)間問(wèn)題。
  比如每日一刊,那么你想當面的咨詢(xún),或者有問(wèn)題要咨詢(xún)一下,直接打他們的電話(huà)吧。這是很正常的。再比如說(shuō)每日一談的網(wǎng)站,很多粉絲通過(guò)搜索“一談”這兩個(gè)字,還是能搜索到很多有用的信息的。只是也不能太頻繁的取消關(guān)注,每周三到四次這樣就比較好。再比如說(shuō)喜馬拉雅等的電臺,其實(shí)也是可以多一點(diǎn)取。 查看全部

  querylist采集微信公眾號文章(【querylist采集】微信公眾號文章排行榜(一))
  querylist采集微信公眾號文章排行榜tips:1.查看微信公眾號文章排行榜2.查看文章鏈接,以及未讀文章所在的列表。3.查看可選擇的自定義菜單,一篇文章有多個(gè)自定義菜單的話(huà),菜單是:投票、鏈接、二維碼、新聞、文章標題等。4.頁(yè)面上一個(gè)自定義菜單可添加多個(gè)自定義頁(yè)面,自定義頁(yè)面可以是專(zhuān)欄頁(yè)面、文章列表頁(yè)、或者外部鏈接等。
  5.自定義頁(yè)面中如果寫(xiě)有重復的內容,可以選擇“復制全部?jì)热荨被颉皠h除所有內容”,如果選擇刪除掉,需要先點(diǎn)擊刪除再看清內容。tips:1.web端查看;2.微信端收到消息后,我們可以打開(kāi)微信登錄帳號,然后點(diǎn)擊上圖中的querylist,查看微信公眾號文章排行榜的鏈接。
  這些平臺都只能看到這個(gè)賬號發(fā)的文章,最多能看到這個(gè)帳號所有的文章。你還可以在推薦的目錄里面找到你需要的關(guān)鍵詞。
  微博大v寫(xiě)文章,靠的就是,標題以及文章里的軟廣。特別是文章標題,如果你有一個(gè)頭銜(作者/發(fā)布者),那么恭喜你,看到大v文章的概率非常大。這就是影響渠道,也影響方法的最根本因素。其他的,看再多的內容也沒(méi)有特別大的幫助。因為大v的文章是社會(huì )化,不是自媒體。自媒體,發(fā)布的內容大多是原創(chuàng )內容,一般都有看收益。
  一般是付費訂閱內容。既然是交易,就會(huì )有一個(gè)硬性的條件,內容質(zhì)量或者粉絲數,達不到標準,再大的粉絲都沒(méi)有用。而關(guān)注微信號,并不是通過(guò)推送的形式,微信號是通過(guò)按鈕來(lái)展示內容。微信的推送形式,方式比較多,包括轉發(fā)文章,點(diǎn)贊文章,收藏文章,贊賞文章,通知自己有文章可閱讀,推送文章,后臺接收文章閱讀數據。所以,微信號能推送的內容非常多,但是不能多且快的推送,依然是事倍功半。
  回過(guò)頭來(lái)說(shuō),我們開(kāi)放多頭銜,多頭銜基本上就是訂閱源的一個(gè)狀態(tài),比如你關(guān)注了高考幫,那么你可以自己選擇個(gè)別微信號或者微信公眾號,進(jìn)行關(guān)注,但是只能看到你關(guān)注的自己關(guān)注的微信號的內容。但是并不代表你可以隨意的取消關(guān)注。我們公司有自己發(fā)的小說(shuō),微信號的公眾號,大家隨意關(guān)注了就好。這是不允許的。只要你關(guān)注的是官方的,比如每日一刊,每日一更,每日一談等,那么這些號就是完全公平的對外發(fā)布的內容,這個(gè)對于你我來(lái)說(shuō),其實(shí)只是時(shí)間問(wèn)題。
  比如每日一刊,那么你想當面的咨詢(xún),或者有問(wèn)題要咨詢(xún)一下,直接打他們的電話(huà)吧。這是很正常的。再比如說(shuō)每日一談的網(wǎng)站,很多粉絲通過(guò)搜索“一談”這兩個(gè)字,還是能搜索到很多有用的信息的。只是也不能太頻繁的取消關(guān)注,每周三到四次這樣就比較好。再比如說(shuō)喜馬拉雅等的電臺,其實(shí)也是可以多一點(diǎn)取。

querylist采集微信公眾號文章(微信文章和采集網(wǎng)站內容一樣的方法獲取到歷史消息頁(yè))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 292 次瀏覽 ? 2022-03-07 08:18 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信文章和采集網(wǎng)站內容一樣的方法獲取到歷史消息頁(yè))
  本文章將詳細講解采集微信公眾號歷史消息頁(yè)的使用方法。我覺(jué)得很有用,所以分享給大家作為參考。希望你看完這篇文章以后可以打賞。
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。所以我們需要使用anyproxy來(lái)獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  __biz = MjM5NDAwMTA2MA ==&UIN = NzM4MTk1ODgx&鍵= bf9387c4d02682e186a298a18276d8e0555e3ab51d81ca46de339e6082eb767343bef610edd80c9e1bfda66c2b62751511f7cc091a33a029709e94f0d1604e11220fc099a27b2e2d29db75cc0849d4bf&的devicetype =機器人-17&版本= 26031c34&LANG = zh_CN的&NETTYPE = WIFI&ascene = 3&pass_ticket = Iox5ZdpRhrSxGYEeopVJwTBP7kZj51GYyEL24AT5Zyx%2BBoEMdPDBtOun1F%2F9ENSz&wx_header = 1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,還可以編寫(xiě)一個(gè)程序,添加key和pass_ticket的鏈接地址,然后通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
??"list":?[
????{
??????"app_msg_ext_info":?{
????????"author":?"",
????????"content":?"",
????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????"copyright_stat":?100,
????????"cover":?"http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
????????"digest":?"擦亮雙眼,遠離謠言。",
????????"fileid":?505283695,
????????"is_multi":?1,
????????"multi_app_msg_item_list":?[
??????????{
????????????"author":?"",
????????????"content":?"",
????????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????????"copyright_stat":?100,
????????????"cover":?"http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
????????????"digest":?"12月28日,廣州亞運城綜合體育館,內附購票入口~",
????????????"fileid":?0,
????????????"source_url":?"http://wechat.show.wepiao.com/ ... ot%3B,
????????????"title":?"2017微信公開(kāi)課Pro版即將召開(kāi)"
??????????},
?????????...//循環(huán)被省略
????????],
????????"source_url":?"",
????????"subtype":?9,
????????"title":?"謠言熱榜?|?十一月朋友圈十大謠言"
??????},
??????"comm_msg_info":?{
????????"content":?"",
????????"datetime":?1480933315,
????????"fakeid":?"3093134871",
????????"id":?1000000010,
????????"status":?2,
????????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
??????}
????},
???...//循環(huán)被省略
??]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list":?[?//最外層的鍵名;只出現一次,所有內容都被它包含。
??{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
????"app_msg_ext_info":{//圖文消息的擴展信息
??????"content_url":?"圖文消息的鏈接地址",
??????"cover":?"封面圖片",
??????"digest":?"摘要",
??????"is_multi":?"是否多圖文,值為1和0",
??????"multi_app_msg_item_list":?[//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
????????{
??????????"content_url":?"圖文消息的鏈接地址",
??????????"cover":?"封面圖片",
??????????"digest":?""摘要"",
??????????"source_url":?"閱讀原文的地址",
??????????"title":?"子內容標題"
????????},
????????...//循環(huán)被省略
??????],
??????"source_url":?"閱讀原文的地址",
??????"title":?"頭條標題"
????},
????"comm_msg_info":{//圖文消息的基本信息
??????"datetime":?'發(fā)布時(shí)間,值為unix時(shí)間戳',
??????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
????}
??},
??...//循環(huán)被省略
]
  這里還要提一點(diǎn),如果你想獲取更舊的歷史消息的內容,你需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  《如何采集微信公眾號歷史新聞頁(yè)面》文章文章分享到這里。希望以上內容能夠對大家有所幫助,讓大家學(xué)習到更多的知識。如果你覺(jué)得文章不錯,請分享給更多人看到。 查看全部

  querylist采集微信公眾號文章(微信文章和采集網(wǎng)站內容一樣的方法獲取到歷史消息頁(yè))
  本文章將詳細講解采集微信公眾號歷史消息頁(yè)的使用方法。我覺(jué)得很有用,所以分享給大家作為參考。希望你看完這篇文章以后可以打賞。
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。所以我們需要使用anyproxy來(lái)獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  __biz = MjM5NDAwMTA2MA ==&UIN = NzM4MTk1ODgx&鍵= bf9387c4d02682e186a298a18276d8e0555e3ab51d81ca46de339e6082eb767343bef610edd80c9e1bfda66c2b62751511f7cc091a33a029709e94f0d1604e11220fc099a27b2e2d29db75cc0849d4bf&的devicetype =機器人-17&版本= 26031c34&LANG = zh_CN的&NETTYPE = WIFI&ascene = 3&pass_ticket = Iox5ZdpRhrSxGYEeopVJwTBP7kZj51GYyEL24AT5Zyx%2BBoEMdPDBtOun1F%2F9ENSz&wx_header = 1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,還可以編寫(xiě)一個(gè)程序,添加key和pass_ticket的鏈接地址,然后通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
??"list":?[
????{
??????"app_msg_ext_info":?{
????????"author":?"",
????????"content":?"",
????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????"copyright_stat":?100,
????????"cover":?"http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
????????"digest":?"擦亮雙眼,遠離謠言。",
????????"fileid":?505283695,
????????"is_multi":?1,
????????"multi_app_msg_item_list":?[
??????????{
????????????"author":?"",
????????????"content":?"",
????????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????????"copyright_stat":?100,
????????????"cover":?"http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
????????????"digest":?"12月28日,廣州亞運城綜合體育館,內附購票入口~",
????????????"fileid":?0,
????????????"source_url":?"http://wechat.show.wepiao.com/ ... ot%3B,
????????????"title":?"2017微信公開(kāi)課Pro版即將召開(kāi)"
??????????},
?????????...//循環(huán)被省略
????????],
????????"source_url":?"",
????????"subtype":?9,
????????"title":?"謠言熱榜?|?十一月朋友圈十大謠言"
??????},
??????"comm_msg_info":?{
????????"content":?"",
????????"datetime":?1480933315,
????????"fakeid":?"3093134871",
????????"id":?1000000010,
????????"status":?2,
????????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
??????}
????},
???...//循環(huán)被省略
??]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list":?[?//最外層的鍵名;只出現一次,所有內容都被它包含。
??{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
????"app_msg_ext_info":{//圖文消息的擴展信息
??????"content_url":?"圖文消息的鏈接地址",
??????"cover":?"封面圖片",
??????"digest":?"摘要",
??????"is_multi":?"是否多圖文,值為1和0",
??????"multi_app_msg_item_list":?[//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
????????{
??????????"content_url":?"圖文消息的鏈接地址",
??????????"cover":?"封面圖片",
??????????"digest":?""摘要"",
??????????"source_url":?"閱讀原文的地址",
??????????"title":?"子內容標題"
????????},
????????...//循環(huán)被省略
??????],
??????"source_url":?"閱讀原文的地址",
??????"title":?"頭條標題"
????},
????"comm_msg_info":{//圖文消息的基本信息
??????"datetime":?'發(fā)布時(shí)間,值為unix時(shí)間戳',
??????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
????}
??},
??...//循環(huán)被省略
]
  這里還要提一點(diǎn),如果你想獲取更舊的歷史消息的內容,你需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  《如何采集微信公眾號歷史新聞頁(yè)面》文章文章分享到這里。希望以上內容能夠對大家有所幫助,讓大家學(xué)習到更多的知識。如果你覺(jué)得文章不錯,請分享給更多人看到。

querylist采集微信公眾號文章(研發(fā)的移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集系統)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 124 次瀏覽 ? 2022-03-06 10:22 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(研發(fā)的移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集系統)
  微信公眾號信息采集微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由A系統專(zhuān)注開(kāi)發(fā)關(guān)于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘 產(chǎn)品介紹:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā)并專(zhuān)注于搜索的系統、監控、采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統是公司研發(fā)的專(zhuān)注于微信公眾號搜索、監控、采集分類(lèi)篩選的系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。具有公眾號覆蓋全面、公眾號信息快速采集、多維度分類(lèi)篩選等特點(diǎn)。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘公司簡(jiǎn)介:微信公眾號信息采集微信公眾號信息采集 產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是由微信公眾號開(kāi)發(fā)并專(zhuān)注于微信公眾號搜索、監控的系統, 采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統由公司自主研發(fā),是國內權威的大數據爬蟲(chóng)系統、互聯(lián)網(wǎng)商業(yè)智能挖掘系統、輿情系統軟件研發(fā)機構。公司擁有多年互聯(lián)網(wǎng)數據挖掘和信息處理經(jīng)驗,在互聯(lián)網(wǎng)信息捕捉、自然語(yǔ)言分析、數據分析等方面擁有深厚的技術(shù)背景。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼淼凳猴春歲走開(kāi)內燈升幣法詹賊烈焰級跑謝子多勇皮難怕獄熱恒聰到墨淵螳螂苗長(cháng)城溶橙團隊包括各領(lǐng)域的專(zhuān)業(yè)人士和互聯(lián)網(wǎng)技術(shù)專(zhuān)家,包括睿智的市場(chǎng)策劃團隊、高素質(zhì)的測試團隊、專(zhuān)業(yè)的研究團隊,以及經(jīng)驗豐富的方案和客服人員。數騰軟件自成立以來(lái),一直致力于輿情監測相關(guān)技術(shù)的研發(fā)和創(chuàng )新,為政府、企業(yè)、機構和各種組織。計劃。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),辟幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,化,昊善煉鞘 主要功用:
  該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ >關(guān)鍵詞管理:創(chuàng )建一個(gè)關(guān)鍵詞關(guān)注,系統會(huì )自動(dòng)采集和監控收錄該關(guān)鍵詞的微信公眾號。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程即時(shí)崩潰3、文章查詢(xún):文章內容檢索。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),辟財,舉法,賊炎,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,融,昊善煉鞘平臺包括:調度監控引擎、UIMA流計算平臺、分布式計算平臺、發(fā)布工具和建模工具。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。系統在移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的數據分析:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集@ >(微爬蟲(chóng))系統是公司自主研發(fā)的系統,專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快,和即時(shí)線(xiàn)程崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ >非結構化數據抽?。壕W(wǎng)頁(yè)上的大部分信息都是非結構化的文本數據,可以通過(guò)獨有的數據抽取技術(shù)將其轉化為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ > 互聯(lián)網(wǎng)網(wǎng)頁(yè)智能清洗:普通網(wǎng)頁(yè)70%以上是雜質(zhì)信息。通過(guò)適用于網(wǎng)頁(yè)的智能清洗技術(shù),我們可以獲得準確的標題、文字等關(guān)鍵內容,杜絕各類(lèi)網(wǎng)頁(yè)廣告和無(wú)關(guān)信息。信息以提高閱讀和分析的準確性。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快捷3、 網(wǎng)頁(yè)模式挖掘:對于相同類(lèi)型的網(wǎng)頁(yè),系統可以自動(dòng)發(fā)現其模式,并根據模式進(jìn)行清洗和信息提取。我們擁有完全無(wú)監督的機器學(xué)習算法,極大地提高了客戶(hù)的生產(chǎn)力和便利性。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳、猴子純穗行走、開(kāi)掛、升幣法、賊焰級、潤斜子、多勇品南、恐獄、恒聰、去墨園、蛀蟲(chóng)、妙腸、橘融4、指紋去重轉載分析:每個(gè) A 文檔都有其特征,我們將其特征編碼為語(yǔ)義指紋并存儲在系統中;通過(guò)比對指紋,我們可以獲得重復信息并跟蹤同一文章的轉載。對于更復雜的應用場(chǎng)景,也支持基于文本相似度的比較算??法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘5、@ >文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。
  我們提供基于海量文本數據庫的文本相關(guān)性挖掘算法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),誅錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙、融、昊擅長(cháng)煉鞘分布式云爬蟲(chóng)技術(shù):微信公眾號資訊采集微信公眾號資訊采集產(chǎn)品介紹:微信公眾號資訊采集(微爬蟲(chóng))系統,由專(zhuān)注于微信開(kāi)發(fā)的公眾號搜索、監控、采集、分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),斥錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙,融,浩擅長(cháng)煉鞘樹(shù)騰分布式云爬蟲(chóng)系統有效、高效、可擴展、可控。主要技術(shù)路線(xiàn)有:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是本公司自主研發(fā)的系統專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ >爬蟲(chóng)系統基于樹(shù)騰分布式流數據計算平臺實(shí)現,執行采集任務(wù),最大化利用資源,平衡數據利用率。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集 (微爬蟲(chóng))系統是微信公眾號開(kāi)發(fā)的,專(zhuān)注于微信公眾號的搜索和監控,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ >部分網(wǎng)站在采集頻繁采集時(shí)可能會(huì )被對方IP屏蔽。針對這種情況,使用了多條adsl線(xiàn)路,并采用adsl pool技術(shù)動(dòng)態(tài)切換爬蟲(chóng)IP,滿(mǎn)足破解封鎖的需要。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨淵,妙場(chǎng),橙,融,昊善煉鞘3、@ >智能抽取功能通過(guò)模板技術(shù)實(shí)現,模板中定義數據抽取規則,數據按要求格式化存儲。使用xpath選擇器、jsoup選擇器、正則表達式等提取采集信息中涉及的數據。如果 網(wǎng)站 的模板改變了,處理過(guò)程中會(huì )向爬蟲(chóng)運維平臺發(fā)送錯誤信息,運維人員監測到錯誤信息后可以重新配置模板。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),罵錢(qián),舉法,賊火,潤邪子,多用品難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘4、當爬取資源不足時(shí),可以隨時(shí)向樹(shù)騰云爬蟲(chóng)系統添加機器,不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。 查看全部

  querylist采集微信公眾號文章(研發(fā)的移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集系統)
  微信公眾號信息采集微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由A系統專(zhuān)注開(kāi)發(fā)關(guān)于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘 產(chǎn)品介紹:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā)并專(zhuān)注于搜索的系統、監控、采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統是公司研發(fā)的專(zhuān)注于微信公眾號搜索、監控、采集分類(lèi)篩選的系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。具有公眾號覆蓋全面、公眾號信息快速采集、多維度分類(lèi)篩選等特點(diǎn)。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘公司簡(jiǎn)介:微信公眾號信息采集微信公眾號信息采集 產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是由微信公眾號開(kāi)發(fā)并專(zhuān)注于微信公眾號搜索、監控的系統, 采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統由公司自主研發(fā),是國內權威的大數據爬蟲(chóng)系統、互聯(lián)網(wǎng)商業(yè)智能挖掘系統、輿情系統軟件研發(fā)機構。公司擁有多年互聯(lián)網(wǎng)數據挖掘和信息處理經(jīng)驗,在互聯(lián)網(wǎng)信息捕捉、自然語(yǔ)言分析、數據分析等方面擁有深厚的技術(shù)背景。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼淼凳猴春歲走開(kāi)內燈升幣法詹賊烈焰級跑謝子多勇皮難怕獄熱恒聰到墨淵螳螂苗長(cháng)城溶橙團隊包括各領(lǐng)域的專(zhuān)業(yè)人士和互聯(lián)網(wǎng)技術(shù)專(zhuān)家,包括睿智的市場(chǎng)策劃團隊、高素質(zhì)的測試團隊、專(zhuān)業(yè)的研究團隊,以及經(jīng)驗豐富的方案和客服人員。數騰軟件自成立以來(lái),一直致力于輿情監測相關(guān)技術(shù)的研發(fā)和創(chuàng )新,為政府、企業(yè)、機構和各種組織。計劃。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),辟幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,化,昊善煉鞘 主要功用:
  該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ >關(guān)鍵詞管理:創(chuàng )建一個(gè)關(guān)鍵詞關(guān)注,系統會(huì )自動(dòng)采集和監控收錄該關(guān)鍵詞的微信公眾號。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程即時(shí)崩潰3、文章查詢(xún):文章內容檢索。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),辟財,舉法,賊炎,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,融,昊善煉鞘平臺包括:調度監控引擎、UIMA流計算平臺、分布式計算平臺、發(fā)布工具和建模工具。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。系統在移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的數據分析:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集@ >(微爬蟲(chóng))系統是公司自主研發(fā)的系統,專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快,和即時(shí)線(xiàn)程崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ >非結構化數據抽?。壕W(wǎng)頁(yè)上的大部分信息都是非結構化的文本數據,可以通過(guò)獨有的數據抽取技術(shù)將其轉化為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ > 互聯(lián)網(wǎng)網(wǎng)頁(yè)智能清洗:普通網(wǎng)頁(yè)70%以上是雜質(zhì)信息。通過(guò)適用于網(wǎng)頁(yè)的智能清洗技術(shù),我們可以獲得準確的標題、文字等關(guān)鍵內容,杜絕各類(lèi)網(wǎng)頁(yè)廣告和無(wú)關(guān)信息。信息以提高閱讀和分析的準確性。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快捷3、 網(wǎng)頁(yè)模式挖掘:對于相同類(lèi)型的網(wǎng)頁(yè),系統可以自動(dòng)發(fā)現其模式,并根據模式進(jìn)行清洗和信息提取。我們擁有完全無(wú)監督的機器學(xué)習算法,極大地提高了客戶(hù)的生產(chǎn)力和便利性。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳、猴子純穗行走、開(kāi)掛、升幣法、賊焰級、潤斜子、多勇品南、恐獄、恒聰、去墨園、蛀蟲(chóng)、妙腸、橘融4、指紋去重轉載分析:每個(gè) A 文檔都有其特征,我們將其特征編碼為語(yǔ)義指紋并存儲在系統中;通過(guò)比對指紋,我們可以獲得重復信息并跟蹤同一文章的轉載。對于更復雜的應用場(chǎng)景,也支持基于文本相似度的比較算??法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘5、@ >文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。
  我們提供基于海量文本數據庫的文本相關(guān)性挖掘算法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),誅錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙、融、昊擅長(cháng)煉鞘分布式云爬蟲(chóng)技術(shù):微信公眾號資訊采集微信公眾號資訊采集產(chǎn)品介紹:微信公眾號資訊采集(微爬蟲(chóng))系統,由專(zhuān)注于微信開(kāi)發(fā)的公眾號搜索、監控、采集、分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),斥錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙,融,浩擅長(cháng)煉鞘樹(shù)騰分布式云爬蟲(chóng)系統有效、高效、可擴展、可控。主要技術(shù)路線(xiàn)有:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是本公司自主研發(fā)的系統專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ >爬蟲(chóng)系統基于樹(shù)騰分布式流數據計算平臺實(shí)現,執行采集任務(wù),最大化利用資源,平衡數據利用率。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集 (微爬蟲(chóng))系統是微信公眾號開(kāi)發(fā)的,專(zhuān)注于微信公眾號的搜索和監控,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ >部分網(wǎng)站在采集頻繁采集時(shí)可能會(huì )被對方IP屏蔽。針對這種情況,使用了多條adsl線(xiàn)路,并采用adsl pool技術(shù)動(dòng)態(tài)切換爬蟲(chóng)IP,滿(mǎn)足破解封鎖的需要。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨淵,妙場(chǎng),橙,融,昊善煉鞘3、@ >智能抽取功能通過(guò)模板技術(shù)實(shí)現,模板中定義數據抽取規則,數據按要求格式化存儲。使用xpath選擇器、jsoup選擇器、正則表達式等提取采集信息中涉及的數據。如果 網(wǎng)站 的模板改變了,處理過(guò)程中會(huì )向爬蟲(chóng)運維平臺發(fā)送錯誤信息,運維人員監測到錯誤信息后可以重新配置模板。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),罵錢(qián),舉法,賊火,潤邪子,多用品難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘4、當爬取資源不足時(shí),可以隨時(shí)向樹(shù)騰云爬蟲(chóng)系統添加機器,不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。

querylist采集微信公眾號文章(微信公眾號數據的采集有兩個(gè)途徑,你知道嗎?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 214 次瀏覽 ? 2022-03-03 06:17 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號數據的采集有兩個(gè)途徑,你知道嗎?)
  微信公眾號數據采集有兩種方式:
  
  1、搜狗微信:因為搜狗和微信合作,所以可以用搜狗微信采集;這個(gè)公眾號只能采集最新的10個(gè),要獲取歷史文章太難了。并注意爬行的頻率。如果頻率高,就會(huì )有驗證碼。本平臺只能進(jìn)行少量數據的采集,不推薦。
  2.微信公眾號平臺:這個(gè)微信公眾號平臺,你必須先申請一個(gè)公眾號(因為微信最近開(kāi)放了在公眾號中插入其他公眾號鏈接的功能,這樣可以存儲數據采集) ,然后進(jìn)入創(chuàng )作管理-圖文素材-列表視圖-新建創(chuàng )作-新建圖文-點(diǎn)擊超鏈接進(jìn)行爬蟲(chóng)操作。這樣可以爬取歷史文章,推薦的方式。(但需要注意的是,如果頻率太快,或者爬的太多,賬號會(huì )被封,24小時(shí),不是ip,而是賬號。目前沒(méi)有什么好辦法,我個(gè)人使用隨機緩存time ,模擬人們?yōu)g覽的方式,為結果犧牲時(shí)間。)
  主要基于第二種方式(微信公眾號平臺):
  1、首先使用selenium模擬登錄微信公眾號,獲取對應的cookie并保存。
  2.獲取cookie和request請求url后,會(huì )跳轉到個(gè)人主頁(yè)(因為cookie)。這時(shí)候url有一個(gè)token,每個(gè)請求都是不同的token。使用正則表達式獲取它。
  3.構造數據包,模擬get請求,返回數據(這個(gè)可以打開(kāi)F12看到)。
  4. 獲取數據并分析數據。
  這是基于微信公眾號平臺的data采集思路。網(wǎng)上有很多具體的代碼。我不會(huì )在這里發(fā)布我的。, 解析數據的步驟,代碼很簡(jiǎn)單,大家可以按照自己的想法嘗試寫(xiě)(如果寫(xiě)不出來(lái)代碼請私信)。
  注意:惡意爬蟲(chóng)是一種危險行為,切記不要惡意爬取某個(gè)網(wǎng)站,遵守互聯(lián)網(wǎng)爬蟲(chóng)規范,簡(jiǎn)單學(xué)習即可。
  這篇文章的鏈接: 查看全部

  querylist采集微信公眾號文章(微信公眾號數據的采集有兩個(gè)途徑,你知道嗎?)
  微信公眾號數據采集有兩種方式:
  
  1、搜狗微信:因為搜狗和微信合作,所以可以用搜狗微信采集;這個(gè)公眾號只能采集最新的10個(gè),要獲取歷史文章太難了。并注意爬行的頻率。如果頻率高,就會(huì )有驗證碼。本平臺只能進(jìn)行少量數據的采集,不推薦。
  2.微信公眾號平臺:這個(gè)微信公眾號平臺,你必須先申請一個(gè)公眾號(因為微信最近開(kāi)放了在公眾號中插入其他公眾號鏈接的功能,這樣可以存儲數據采集) ,然后進(jìn)入創(chuàng )作管理-圖文素材-列表視圖-新建創(chuàng )作-新建圖文-點(diǎn)擊超鏈接進(jìn)行爬蟲(chóng)操作。這樣可以爬取歷史文章,推薦的方式。(但需要注意的是,如果頻率太快,或者爬的太多,賬號會(huì )被封,24小時(shí),不是ip,而是賬號。目前沒(méi)有什么好辦法,我個(gè)人使用隨機緩存time ,模擬人們?yōu)g覽的方式,為結果犧牲時(shí)間。)
  主要基于第二種方式(微信公眾號平臺):
  1、首先使用selenium模擬登錄微信公眾號,獲取對應的cookie并保存。
  2.獲取cookie和request請求url后,會(huì )跳轉到個(gè)人主頁(yè)(因為cookie)。這時(shí)候url有一個(gè)token,每個(gè)請求都是不同的token。使用正則表達式獲取它。
  3.構造數據包,模擬get請求,返回數據(這個(gè)可以打開(kāi)F12看到)。
  4. 獲取數據并分析數據。
  這是基于微信公眾號平臺的data采集思路。網(wǎng)上有很多具體的代碼。我不會(huì )在這里發(fā)布我的。, 解析數據的步驟,代碼很簡(jiǎn)單,大家可以按照自己的想法嘗試寫(xiě)(如果寫(xiě)不出來(lái)代碼請私信)。
  注意:惡意爬蟲(chóng)是一種危險行為,切記不要惡意爬取某個(gè)網(wǎng)站,遵守互聯(lián)網(wǎng)爬蟲(chóng)規范,簡(jiǎn)單學(xué)習即可。
  這篇文章的鏈接:

querylist采集微信公眾號文章(微信公眾號文章的GET及方法(二)-)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-03-03 03:13 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號文章的GET及方法(二)-)
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
   def weChat_login(user, password): post = {} browser = webdriver.Chrome() browser.get('https://mp.weixin.qq.com/') sleep(3) browser.delete_all_cookies() sleep(2) # 點(diǎn)擊切換到賬號密碼輸入 browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click() sleep(2) # 模擬用戶(hù)點(diǎn)擊 input_user = browser.find_element_by_xpath("//input[@name='account']") input_user.send_keys(user) input_password = browser.find_element_by_xpath("//input[@name='password']") input_password.send_keys(password) sleep(2) # 點(diǎn)擊登錄 browser.find_element_by_xpath("//a[@class='btn_login']").click() sleep(2) # 微信登錄驗證 print('請掃描二維碼') sleep(20) # 刷新當前網(wǎng)頁(yè) browser.get('https://mp.weixin.qq.com/') sleep(5) # 獲取當前網(wǎng)頁(yè)鏈接 url = browser.current_url # 獲取當前cookie cookies = browser.get_cookies() for item in cookies: post[item['name']] = item['value'] # 轉換為字符串 cookie_str = json.dumps(post) # 存儲到本地 with open('cookie.txt', 'w+', encoding='utf-8') as f: f.write(cookie_str) print('cookie保存到本地成功') # 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token paramList = url.strip().split('?')[1].split('&') # 定義一個(gè)字典存儲數據 paramdict = {} for item in paramList: paramdict[item.split('=')[0]] = item.split('=')[1] # 返回token return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com' headers = { 'HOST': 'mp.weixin.qq.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63' } with open('cookie.txt', 'r', encoding='utf-8') as f: cookie = f.read() cookies = json.loads(cookie) resp = requests.get(url=url, headers=headers, cookies=cookies) search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?' params = { 'action': 'search_biz', 'begin': '0', 'count': '5', 'query': '搜索的公眾號名稱(chēng)', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
   lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
   fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?' params_data = { 'action': 'list_ex', 'begin': '0', 'count': '5', 'fakeid': fakeid, 'type': '9', 'query': '', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章的爬取內容請搜索本站上一篇文章或繼續瀏覽以下相關(guān)文章希望大家多多支持本站未來(lái)! 查看全部

  querylist采集微信公眾號文章(微信公眾號文章的GET及方法(二)-)
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
   def weChat_login(user, password): post = {} browser = webdriver.Chrome() browser.get('https://mp.weixin.qq.com/') sleep(3) browser.delete_all_cookies() sleep(2) # 點(diǎn)擊切換到賬號密碼輸入 browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click() sleep(2) # 模擬用戶(hù)點(diǎn)擊 input_user = browser.find_element_by_xpath("//input[@name='account']") input_user.send_keys(user) input_password = browser.find_element_by_xpath("//input[@name='password']") input_password.send_keys(password) sleep(2) # 點(diǎn)擊登錄 browser.find_element_by_xpath("//a[@class='btn_login']").click() sleep(2) # 微信登錄驗證 print('請掃描二維碼') sleep(20) # 刷新當前網(wǎng)頁(yè) browser.get('https://mp.weixin.qq.com/') sleep(5) # 獲取當前網(wǎng)頁(yè)鏈接 url = browser.current_url # 獲取當前cookie cookies = browser.get_cookies() for item in cookies: post[item['name']] = item['value'] # 轉換為字符串 cookie_str = json.dumps(post) # 存儲到本地 with open('cookie.txt', 'w+', encoding='utf-8') as f: f.write(cookie_str) print('cookie保存到本地成功') # 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token paramList = url.strip().split('?')[1].split('&') # 定義一個(gè)字典存儲數據 paramdict = {} for item in paramList: paramdict[item.split('=')[0]] = item.split('=')[1] # 返回token return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com' headers = { 'HOST': 'mp.weixin.qq.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63' } with open('cookie.txt', 'r', encoding='utf-8') as f: cookie = f.read() cookies = json.loads(cookie) resp = requests.get(url=url, headers=headers, cookies=cookies) search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?' params = { 'action': 'search_biz', 'begin': '0', 'count': '5', 'query': '搜索的公眾號名稱(chēng)', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
   lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
   fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?' params_data = { 'action': 'list_ex', 'begin': '0', 'count': '5', 'fakeid': fakeid, 'type': '9', 'query': '', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章的爬取內容請搜索本站上一篇文章或繼續瀏覽以下相關(guān)文章希望大家多多支持本站未來(lái)!

querylist采集微信公眾號文章( 微信公眾號文章的GET及方法(二)-)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 153 次瀏覽 ? 2022-02-28 10:32 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
微信公眾號文章的GET及方法(二)-)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):<br />post = {}<br />browser = webdriver.Chrome()<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(3)<br />browser.delete_all_cookies()<br />sleep(2)<br /># 點(diǎn)擊切換到賬號密碼輸入<br />browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()<br />sleep(2)<br /># 模擬用戶(hù)點(diǎn)擊<br />input_user = browser.find_element_by_xpath("//input[@name='account']")<br />input_user.send_keys(user)<br />input_password = browser.find_element_by_xpath("//input[@name='password']")<br />input_password.send_keys(password)<br />sleep(2)<br /># 點(diǎn)擊登錄<br />browser.find_element_by_xpath("//a[@class='btn_login']").click()<br />sleep(2)<br /># 微信登錄驗證<br />print('請掃描二維碼')<br />sleep(20)<br /># 刷新當前網(wǎng)頁(yè)<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(5)<br /># 獲取當前網(wǎng)頁(yè)鏈接<br />url = browser.current_url<br /># 獲取當前cookie<br />cookies = browser.get_cookies()<br />for item in cookies:<br />post[item['name']] = item['value']<br /># 轉換為字符串<br />cookie_str = json.dumps(post)<br /># 存儲到本地<br />with open('cookie.txt', 'w+', encoding='utf-8') as f:<br />f.write(cookie_str)<br />print('cookie保存到本地成功')<br /># 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token<br />paramList = url.strip().split('?')[1].split('&')<br /># 定義一個(gè)字典存儲數據<br />paramdict = {}<br />for item in paramList:<br />paramdict[item.split('=')[0]] = item.split('=')[1]<br /># 返回token<br />return paramdict['token']<br />
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com'<br />headers = {<br />'HOST': 'mp.weixin.qq.com',<br />'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'<br /> }<br />with open('cookie.txt', 'r', encoding='utf-8') as f:<br />cookie = f.read()<br />cookies = json.loads(cookie)<br />resp = requests.get(url=url, headers=headers, cookies=cookies)<br />search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'<br />params = {<br />'action': 'search_biz',<br />'begin': '0',<br />'count': '5',<br />'query': '搜索的公眾號名稱(chēng)',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)<br />
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists = search_resp.json().get('list')[0]<br />
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid = lists.get('fakeid')<br />
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'<br />params_data = {<br />'action': 'list_ex',<br />'begin': '0',<br />'count': '5',<br />'fakeid': fakeid,<br />'type': '9',<br />'query': '',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)<br />
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置延遲時(shí)間,否則容易被封號,獲取不到返回的數據。 查看全部

  querylist采集微信公眾號文章(
微信公眾號文章的GET及方法(二)-)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):<br />post = {}<br />browser = webdriver.Chrome()<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(3)<br />browser.delete_all_cookies()<br />sleep(2)<br /># 點(diǎn)擊切換到賬號密碼輸入<br />browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()<br />sleep(2)<br /># 模擬用戶(hù)點(diǎn)擊<br />input_user = browser.find_element_by_xpath("//input[@name='account']")<br />input_user.send_keys(user)<br />input_password = browser.find_element_by_xpath("//input[@name='password']")<br />input_password.send_keys(password)<br />sleep(2)<br /># 點(diǎn)擊登錄<br />browser.find_element_by_xpath("//a[@class='btn_login']").click()<br />sleep(2)<br /># 微信登錄驗證<br />print('請掃描二維碼')<br />sleep(20)<br /># 刷新當前網(wǎng)頁(yè)<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(5)<br /># 獲取當前網(wǎng)頁(yè)鏈接<br />url = browser.current_url<br /># 獲取當前cookie<br />cookies = browser.get_cookies()<br />for item in cookies:<br />post[item['name']] = item['value']<br /># 轉換為字符串<br />cookie_str = json.dumps(post)<br /># 存儲到本地<br />with open('cookie.txt', 'w+', encoding='utf-8') as f:<br />f.write(cookie_str)<br />print('cookie保存到本地成功')<br /># 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token<br />paramList = url.strip().split('?')[1].split('&')<br /># 定義一個(gè)字典存儲數據<br />paramdict = {}<br />for item in paramList:<br />paramdict[item.split('=')[0]] = item.split('=')[1]<br /># 返回token<br />return paramdict['token']<br />
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com'<br />headers = {<br />'HOST': 'mp.weixin.qq.com',<br />'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'<br /> }<br />with open('cookie.txt', 'r', encoding='utf-8') as f:<br />cookie = f.read()<br />cookies = json.loads(cookie)<br />resp = requests.get(url=url, headers=headers, cookies=cookies)<br />search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'<br />params = {<br />'action': 'search_biz',<br />'begin': '0',<br />'count': '5',<br />'query': '搜索的公眾號名稱(chēng)',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)<br />
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists = search_resp.json().get('list')[0]<br />
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid = lists.get('fakeid')<br />
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'<br />params_data = {<br />'action': 'list_ex',<br />'begin': '0',<br />'count': '5',<br />'fakeid': fakeid,<br />'type': '9',<br />'query': '',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)<br />
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置延遲時(shí)間,否則容易被封號,獲取不到返回的數據。

querylist采集微信公眾號文章(微信公眾號爬取程序分享搞成java的難點(diǎn)在于)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2022-02-27 13:09 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號爬取程序分享搞成java的難點(diǎn)在于)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
  
replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
//console.log("開(kāi)始第一種頁(yè)面爬取");
if(serverResData.toString() !== ""){
6 try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
//console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
//console.log("開(kāi)始第一種頁(yè)面爬取 結束");
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
//console.log(e);
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require('http');
http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
//callback(serverResData);
},
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。 查看全部

  querylist采集微信公眾號文章(微信公眾號爬取程序分享搞成java的難點(diǎn)在于)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
  
replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
//console.log("開(kāi)始第一種頁(yè)面爬取");
if(serverResData.toString() !== ""){
6 try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
//console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
//console.log("開(kāi)始第一種頁(yè)面爬取 結束");
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
//console.log(e);
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require('http');
http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
//callback(serverResData);
},
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。

querylist采集微信公眾號文章(text-to-texttransformertotext+,、然后在詞向量上做結構化訓練)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2022-02-26 12:07 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(text-to-texttransformertotext+,、然后在詞向量上做結構化訓練)
  querylist采集微信公眾號文章的文章和粉絲關(guān)注公眾號的文章;可以做momentum分布,或者bloomfilter分布,或者queryfilter分布等等。對于單個(gè)大文件來(lái)說(shuō),最合適的方法是bivariables,即用整個(gè)大文件的query里的所有html作為value,否則可能會(huì )碰到can'tread這種問(wèn)題。
  分詞后做分詞器,另外就是html結構化,mobi分詞。
  樓上的回答都挺好的,再補充一個(gè),可以用單詞向量訓練語(yǔ)義向量,比如用百度翻譯的word2vec的經(jīng)典模型,
  根據你的需求,大概是要找到一個(gè)語(yǔ)料庫,然后用你的語(yǔ)料庫訓練分詞器,生成model。使用你訓練好的模型,來(lái)生成token。比如attention+model,基本就是一個(gè)單詞或者字的向量生成的方法了。比如nlp:每天都有大量文本需要進(jìn)行text-to-texttransformertotext摘要,推薦用你的語(yǔ)料庫訓練模型,然后然后,才是訓練model。
  構建一個(gè)結構化的token表,token表的每個(gè)元素是一段文本,
  大概把token表中的每一個(gè)單詞看成一個(gè)正則項。然后用正則化引入到詞向量。
  構建詞向量、然后在詞向量上做結構化訓練text-to-texttransformertotext摘要
  微信訂閱號文章主要是幾個(gè)大的類(lèi)型,一般是公司、產(chǎn)品、老板、專(zhuān)業(yè)術(shù)語(yǔ)、核心內容等,幾個(gè)類(lèi)型的token分別是訂閱號,公眾號,ceo、產(chǎn)品、新聞、企業(yè)等,且這些token之間又彼此有時(shí)候也不互相關(guān)聯(lián)。其中有些token之間本身也不互相關(guān)聯(lián),比如老板,“老板,問(wèn)題來(lái)了”;另外的token之間相關(guān)性不強,比如產(chǎn)品、產(chǎn)品、產(chǎn)品的詞。
  但是這些token之間有的也需要關(guān)聯(lián)。做這些需要整合語(yǔ)料庫,全量的數據源,很多這類(lèi)數據都是比較老舊的,畢竟那么多流量用戶(hù)關(guān)注了,每天的推送也保存了好幾十萬(wàn),有的生產(chǎn)推送活動(dòng),有些活動(dòng)一有新的或者新的一類(lèi)的推送。需要及時(shí)的和原來(lái)數據庫的數據做相關(guān)性或者切換,不僅生成了語(yǔ)料庫,還生成了大量的token。下面我們利用學(xué)術(shù)界已經(jīng)做好的數據庫來(lái)生成token。
  最老的文本就是書(shū)面用語(yǔ),比如towhom是通過(guò)要做好的企業(yè)和工廠(chǎng)給客戶(hù)發(fā)的信息,語(yǔ)言文字就這些。后面做網(wǎng)絡(luò )查詢(xún)時(shí),我們也加入了更多信息。為了簡(jiǎn)單這里只從四個(gè)類(lèi)型來(lái)創(chuàng )建token。1.公司,企業(yè):比如我是xxx公司的,我是用common_information來(lái)用,如果還有了競爭對手或其他公司也可以用common_information。
  2.個(gè)人:個(gè)人的token分兩種,common_information和wirefox,查看新聞的就查看wirefone,要求用郵箱token;另外common_in。 查看全部

  querylist采集微信公眾號文章(text-to-texttransformertotext+,、然后在詞向量上做結構化訓練)
  querylist采集微信公眾號文章的文章和粉絲關(guān)注公眾號的文章;可以做momentum分布,或者bloomfilter分布,或者queryfilter分布等等。對于單個(gè)大文件來(lái)說(shuō),最合適的方法是bivariables,即用整個(gè)大文件的query里的所有html作為value,否則可能會(huì )碰到can'tread這種問(wèn)題。
  分詞后做分詞器,另外就是html結構化,mobi分詞。
  樓上的回答都挺好的,再補充一個(gè),可以用單詞向量訓練語(yǔ)義向量,比如用百度翻譯的word2vec的經(jīng)典模型,
  根據你的需求,大概是要找到一個(gè)語(yǔ)料庫,然后用你的語(yǔ)料庫訓練分詞器,生成model。使用你訓練好的模型,來(lái)生成token。比如attention+model,基本就是一個(gè)單詞或者字的向量生成的方法了。比如nlp:每天都有大量文本需要進(jìn)行text-to-texttransformertotext摘要,推薦用你的語(yǔ)料庫訓練模型,然后然后,才是訓練model。
  構建一個(gè)結構化的token表,token表的每個(gè)元素是一段文本,
  大概把token表中的每一個(gè)單詞看成一個(gè)正則項。然后用正則化引入到詞向量。
  構建詞向量、然后在詞向量上做結構化訓練text-to-texttransformertotext摘要
  微信訂閱號文章主要是幾個(gè)大的類(lèi)型,一般是公司、產(chǎn)品、老板、專(zhuān)業(yè)術(shù)語(yǔ)、核心內容等,幾個(gè)類(lèi)型的token分別是訂閱號,公眾號,ceo、產(chǎn)品、新聞、企業(yè)等,且這些token之間又彼此有時(shí)候也不互相關(guān)聯(lián)。其中有些token之間本身也不互相關(guān)聯(lián),比如老板,“老板,問(wèn)題來(lái)了”;另外的token之間相關(guān)性不強,比如產(chǎn)品、產(chǎn)品、產(chǎn)品的詞。
  但是這些token之間有的也需要關(guān)聯(lián)。做這些需要整合語(yǔ)料庫,全量的數據源,很多這類(lèi)數據都是比較老舊的,畢竟那么多流量用戶(hù)關(guān)注了,每天的推送也保存了好幾十萬(wàn),有的生產(chǎn)推送活動(dòng),有些活動(dòng)一有新的或者新的一類(lèi)的推送。需要及時(shí)的和原來(lái)數據庫的數據做相關(guān)性或者切換,不僅生成了語(yǔ)料庫,還生成了大量的token。下面我們利用學(xué)術(shù)界已經(jīng)做好的數據庫來(lái)生成token。
  最老的文本就是書(shū)面用語(yǔ),比如towhom是通過(guò)要做好的企業(yè)和工廠(chǎng)給客戶(hù)發(fā)的信息,語(yǔ)言文字就這些。后面做網(wǎng)絡(luò )查詢(xún)時(shí),我們也加入了更多信息。為了簡(jiǎn)單這里只從四個(gè)類(lèi)型來(lái)創(chuàng )建token。1.公司,企業(yè):比如我是xxx公司的,我是用common_information來(lái)用,如果還有了競爭對手或其他公司也可以用common_information。
  2.個(gè)人:個(gè)人的token分兩種,common_information和wirefox,查看新聞的就查看wirefone,要求用郵箱token;另外common_in。

querylist采集微信公眾號文章(網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易新聞+評論新浪微博推薦)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 155 次瀏覽 ? 2022-02-24 21:03 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易新聞+評論新浪微博推薦)
  querylist采集微信公眾號文章自動(dòng)生成詞典,語(yǔ)言詞典,標題詞典,評論詞典,新聞詞典,時(shí)間詞典,特殊字符詞典,類(lèi)型詞典,短語(yǔ)詞典,長(cháng)句詞典,英文短語(yǔ)詞典,英文長(cháng)句詞典,英文單詞詞典,美國發(fā)明詞典,美國發(fā)明短語(yǔ)詞典,單詞排序,查詢(xún)詞典,單詞詞頻統計,查詢(xún)外國明星名人網(wǎng)絡(luò )流行詞文藝小清新系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞+評論系列:網(wǎng)易云音樂(lè )推薦網(wǎng)易新聞+評論新浪微博個(gè)性化推薦系列:網(wǎng)易微博個(gè)性化推薦,新浪微博推薦網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:網(wǎng)易搜狗百科,搜狗百科個(gè)性化推薦,百度百科個(gè)性化推薦部分單詞last。
  fm個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易小說(shuō)個(gè)性化推薦,網(wǎng)易小說(shuō)推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞電影電視劇個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易漫畫(huà)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列。 查看全部

  querylist采集微信公眾號文章(網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易新聞+評論新浪微博推薦)
  querylist采集微信公眾號文章自動(dòng)生成詞典,語(yǔ)言詞典,標題詞典,評論詞典,新聞詞典,時(shí)間詞典,特殊字符詞典,類(lèi)型詞典,短語(yǔ)詞典,長(cháng)句詞典,英文短語(yǔ)詞典,英文長(cháng)句詞典,英文單詞詞典,美國發(fā)明詞典,美國發(fā)明短語(yǔ)詞典,單詞排序,查詢(xún)詞典,單詞詞頻統計,查詢(xún)外國明星名人網(wǎng)絡(luò )流行詞文藝小清新系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞+評論系列:網(wǎng)易云音樂(lè )推薦網(wǎng)易新聞+評論新浪微博個(gè)性化推薦系列:網(wǎng)易微博個(gè)性化推薦,新浪微博推薦網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:網(wǎng)易搜狗百科,搜狗百科個(gè)性化推薦,百度百科個(gè)性化推薦部分單詞last。
  fm個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易小說(shuō)個(gè)性化推薦,網(wǎng)易小說(shuō)推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞電影電視劇個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易漫畫(huà)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列。

querylist采集微信公眾號文章(一個(gè)就是ip代理的質(zhì)量不行,哪里不行呢?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 214 次瀏覽 ? 2022-02-22 21:21 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(一個(gè)就是ip代理的質(zhì)量不行,哪里不行呢?)
  關(guān)注上一篇未完成的爬蟲(chóng)項目,繼續更新最終代碼片段
  最近比較忙,沒(méi)時(shí)間更新文章的下一篇。就在這幾天,有時(shí)間重新調整代碼,更新里面的細節。發(fā)現調整代碼有很多問(wèn)題,主要是ip代理質(zhì)量不好,哪里不好,往下看就知道了。三、獲取每篇文章文章的閱讀和點(diǎn)贊數
  想要獲取文章的閱讀量,在微信公眾平臺里面直接點(diǎn)擊,是獲取不了文章的閱讀量的,測試如下:
  
  然后我們可以去fiddler查看這個(gè)文章的包,可以看到這個(gè)包是
  文章的內容可以從body的大小來(lái)判斷,也就是文章的內容。
  
  但是我們無(wú)法從這個(gè)路由中獲取文章的閱讀量,因為這個(gè)請求是一個(gè)get請求。如果要獲取文章的閱讀點(diǎn)贊,第一個(gè)請求是post請求,然后需要攜帶三個(gè)重要參數pass_ticket、appmsg_token、phoneCookie。要獲取這三個(gè)參數,我們要把公眾號中的文章放到微信中點(diǎn)擊,然后從fiddler查看抓包情況。
  
  我們去fiddler看一下抓包情況:我們可以看到上面還有一個(gè)get請求,但是下面添加了一個(gè)post請求的內容,然后看一下攜帶的參數,這三個(gè)是重要的得到我們想要的閱讀量參數,以及響應的內容,可以看出已經(jīng)獲取到文章的閱讀量信息?,F在我們可以拼接參數來(lái)發(fā)送請求了。
  
  #獲取文章閱讀量
def get_readNum(link,user_agent):
pass_ticket ="N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U"
appmsg_token = "1073_N8SQ6BkIGIQRZvII-hnp11Whcg8iqFcaN4Rd19rKluJDPVMDagdss_Rwbb-fI4WaoXLyxA244qF3iAp_"
# phoneCookie有效時(shí)間在兩個(gè)小時(shí)左右,需要手動(dòng)更新
phoneCookie = "rewardsn=; wxtokenkey=777; wxuin=2890533338; devicetype=Windows10x64; version=62090529; lang=zh_CN; pass_ticket=N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U; wap_sid2=CNqTqOIKElxWcHFLdDFkanBJZjlZbzdXVmVrejNuVXdUb3hBSERDTTBDcHlSdVAxTTFIeEpwQmdrWnM1TWRFdWtuRUlSRDFnUzRHNkNQZFpVMXl1UEVYalgyX1ljakVFQUFBfjCT5bP5BTgNQAE="
mid = link.split("&")[1].split("=")[1]
idx = link.split("&")[2].split("=")[1]
sn = link.split("&")[3].split("=")[1]
_biz = link.split("&")[0].split("_biz=")[1]
url = "http://mp.weixin.qq.com/mp/getappmsgext"
headers = {
"Cookie": phoneCookie,
"User-Agent":user_agent
}
data = {
"is_only_read": "1",
"is_temp_url": "0",
"appmsg_type": "9",
&#39;reward_uin_count&#39;: &#39;0&#39;
}
params = {
"__biz": _biz,
"mid": mid,
"sn": sn,
"idx": idx,
"key": &#39;777&#39;,
"pass_ticket": pass_ticket,
"appmsg_token": appmsg_token,
"uin": &#39;777&#39;,
"wxtoken": "777"
}
success = False
a=1
while not success:
ip_num = ranDom_ip()[0] # 使用不同的ip進(jìn)行閱讀、點(diǎn)贊量的獲取
try:
print("獲取閱讀量使用ip:%s"%ip_num)
content = requests.post(url, headers=headers, data=data, params=params, proxies=ip_num,timeout=6.6)#設置超時(shí)時(shí)間5秒
time.sleep(4)
content = content.json()
print(link)#文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num=content["appmsgstat"]["old_like_num"] #點(diǎn)贊量
zai_kan=content["appmsgstat"]["like_num"] #在看量
else:
readNum = 0
like_num = 0
success=True
return readNum, like_num
except:
print("獲取閱讀量ip出現問(wèn)題,更換ip進(jìn)入第二次循環(huán)獲?。。?!")
a+=1
# if a%5==0:
content = requests.post(url, headers=headers, data=data, params=params,timeout=5)
time.sleep(3)
content = content.json()
print(link) #文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num = content["appmsgstat"]["old_like_num"] # 點(diǎn)贊量
zai_kan = content["appmsgstat"]["like_num"] # 在看量
else:
print(&#39;文章閱讀點(diǎn)贊獲取失??!&#39;)
readNum=0
like_num=0
# else:
# continue
return readNum, like_num
  需要注意的是,在這三個(gè)重要參數中,phoneCookie 是時(shí)間敏感的,需要手動(dòng)更新,這是最麻煩的,就像 cookie 一樣。通過(guò)傳入的文章鏈接,我們可以在鏈接中提取一些有用的參數,用于后期拼接post請求。不好,所以代碼略顯冗余(需要改進(jìn))。
  四、使用UA代理和IP代理設置每個(gè)文章的爬取速度
  通過(guò)以上操作,我們基本可以爬取文章的鏈接、標題、鏈接,完成初步需求:
  
  但是我在開(kāi)心爬的時(shí)候發(fā)現很快就被反爬發(fā)現了,直接屏蔽了我公眾號的請求。
  
  這時(shí)候就想到了ip proxy來(lái)識別我們是否反爬,主要是從ip和UA,所以后來(lái)做了一個(gè)ip代理池,從一些ip網(wǎng)站爬取ip,通過(guò)了代碼大賽選擇有用的 IP 形成 IP 池。貢獻一段我爬ip的代碼,感興趣的朋友可以直接試試:
  import requests
from bs4 import BeautifulSoup
import json
import random
import re
ip_num=[]
url="http://www.66ip.cn/1.html"
headers={
"Host": "www.66ip.cn ",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Referer": "http://www.66ip.cn/index.html",
"Cookie": "Hm_lvt_1761fabf3c988e7f04bec51acd4073f4=1595575058,1595816310; Hm_lpvt_1761fabf3c988e7f04bec51acd4073f4=1595832351",
}
content=requests.get(url,headers=headers)
content.encoding="gbk"
html=BeautifulSoup(content.text,"html.parser")
# print(html)
content=html.find_all("table",{"border":"2px"})
ip=re.findall(&#39;(\d{1,4}.\d{1,4}.\d{1,4}.\d{1,4})&#39;,str(content))
port=re.findall(&#39;(\d{1,5})&#39;,str(content))
for i in range(len(port)):
ip_num.append(ip[i]+":"+port[i])
proxies = [{&#39;http&#39;:ip_num[num]} for num in range(len(ip_num))]
for i in range(0, len(ip_num)):
proxie = random.choice(proxies)
print("%s:當前使用的ip是:%s" % (i, proxie[&#39;http&#39;]))
try:
response = requests.get("http://mp.weixin.qq.com/", proxies=proxie, timeout=3)
print(response)
if response.status_code == 200:
# with open(&#39;ip.txt&#39;, "a", newline="")as f:
# f.write(proxie[&#39;http&#39;] + "\n")
print("保存成功")
except Exception as e:
print("ip不可用")
  我將過(guò)濾掉網(wǎng)站的ip,保存在本地,然后通過(guò)寫(xiě)一個(gè)函數來(lái)創(chuàng )建一個(gè)ip地址:
  #代理池函數
def ranDom_ip():
with open(&#39;ip.txt&#39;,"r")as f:
ip_num=f.read()
ip_list=ip_num.split("\n")
num=random.randint(0,len(ip_list)-1)
proxies = [{&#39;http&#39;: ip_list[num]}]
return proxies
  然后在函數循環(huán)中調用這個(gè)ip代理的函數,就可以不斷更新自己使用的ip。這是給你的流程圖,所以我們可以知道在哪里使用ip代理功能。
  
  通過(guò)將以上三個(gè)地方加入到我們使用的ip池中,不斷變化的ip就是成功繞過(guò)反爬的點(diǎn)。當我們不斷更改 ip 時(shí),我仍然感到有點(diǎn)不安全。我覺(jué)得UA也需要不斷更新,所以我導入了一個(gè)ua代理池
  from fake_useragent import UserAgent #導入UA代理池
user_agent=UserAgent()
  但需要注意的是,我們不能更改headers中的所有UA,我們只能添加UA代理的一部分,因為公眾號的請求是由兩部分組成的,我們只能添加前半部分。
  
  就像下面的請求頭一樣,我們的Ua代理只能替換前半部分,這樣Ua也是不斷變化的,而且變化的位置和上面ip函數的位置一樣,我們就可以實(shí)現ip,UA在之后每個(gè)請求都是不同的。
   headers={
"Host":"mp.weixin.qq.com",
"User-Agent":user_agent.random +"(KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2469 MMWEBSDK/200601 Mobile Safari/537.36 MMWEBID/3809 MicroMessenger/7.0.16.1680(0x27001033) Process/toolsmp WeChat/arm64 NetType/WIFI Language/zh_CN ABI/arm64"
}
  在這兩個(gè)參數之后,我們基本可以控制不被反爬蟲(chóng)發(fā)現了,但是還有一點(diǎn)很重要,就是控制爬取的速度,因為ip和ua是不斷變化的,但是你公眾號的cookie不能被改變。如果爬取速度過(guò)快,會(huì )識別出訪(fǎng)問(wèn)你公眾號某個(gè)界面的頻率太快,直接禁止你公眾號搜索的界面文章,所以我們需要做一個(gè)請求延遲,那么在這個(gè)過(guò)程中我們哪里可以做得更好呢?可以在流程圖中標記的位置進(jìn)行延遲。
  
  這樣既能控制速度,又能防止本地ip和ua被發(fā)現,妙不可言。缺點(diǎn)是我沒(méi)有找到高質(zhì)量的ip池。我用的是free ip,所以很多都是在換ip的過(guò)程中拿不到的。讀取量方面(窮人嘆),如果有高級IP代理池,速度是非??斓?。完整的代碼不會(huì )在這里粘貼。有興趣我可以私發(fā)。 查看全部

  querylist采集微信公眾號文章(一個(gè)就是ip代理的質(zhì)量不行,哪里不行呢?)
  關(guān)注上一篇未完成的爬蟲(chóng)項目,繼續更新最終代碼片段
  最近比較忙,沒(méi)時(shí)間更新文章的下一篇。就在這幾天,有時(shí)間重新調整代碼,更新里面的細節。發(fā)現調整代碼有很多問(wèn)題,主要是ip代理質(zhì)量不好,哪里不好,往下看就知道了。三、獲取每篇文章文章的閱讀和點(diǎn)贊數
  想要獲取文章的閱讀量,在微信公眾平臺里面直接點(diǎn)擊,是獲取不了文章的閱讀量的,測試如下:
  
  然后我們可以去fiddler查看這個(gè)文章的包,可以看到這個(gè)包是
  文章的內容可以從body的大小來(lái)判斷,也就是文章的內容。
  
  但是我們無(wú)法從這個(gè)路由中獲取文章的閱讀量,因為這個(gè)請求是一個(gè)get請求。如果要獲取文章的閱讀點(diǎn)贊,第一個(gè)請求是post請求,然后需要攜帶三個(gè)重要參數pass_ticket、appmsg_token、phoneCookie。要獲取這三個(gè)參數,我們要把公眾號中的文章放到微信中點(diǎn)擊,然后從fiddler查看抓包情況。
  
  我們去fiddler看一下抓包情況:我們可以看到上面還有一個(gè)get請求,但是下面添加了一個(gè)post請求的內容,然后看一下攜帶的參數,這三個(gè)是重要的得到我們想要的閱讀量參數,以及響應的內容,可以看出已經(jīng)獲取到文章的閱讀量信息?,F在我們可以拼接參數來(lái)發(fā)送請求了。
  
  #獲取文章閱讀量
def get_readNum(link,user_agent):
pass_ticket ="N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U"
appmsg_token = "1073_N8SQ6BkIGIQRZvII-hnp11Whcg8iqFcaN4Rd19rKluJDPVMDagdss_Rwbb-fI4WaoXLyxA244qF3iAp_"
# phoneCookie有效時(shí)間在兩個(gè)小時(shí)左右,需要手動(dòng)更新
phoneCookie = "rewardsn=; wxtokenkey=777; wxuin=2890533338; devicetype=Windows10x64; version=62090529; lang=zh_CN; pass_ticket=N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U; wap_sid2=CNqTqOIKElxWcHFLdDFkanBJZjlZbzdXVmVrejNuVXdUb3hBSERDTTBDcHlSdVAxTTFIeEpwQmdrWnM1TWRFdWtuRUlSRDFnUzRHNkNQZFpVMXl1UEVYalgyX1ljakVFQUFBfjCT5bP5BTgNQAE="
mid = link.split("&")[1].split("=")[1]
idx = link.split("&")[2].split("=")[1]
sn = link.split("&")[3].split("=")[1]
_biz = link.split("&")[0].split("_biz=")[1]
url = "http://mp.weixin.qq.com/mp/getappmsgext"
headers = {
"Cookie": phoneCookie,
"User-Agent":user_agent
}
data = {
"is_only_read": "1",
"is_temp_url": "0",
"appmsg_type": "9",
&#39;reward_uin_count&#39;: &#39;0&#39;
}
params = {
"__biz": _biz,
"mid": mid,
"sn": sn,
"idx": idx,
"key": &#39;777&#39;,
"pass_ticket": pass_ticket,
"appmsg_token": appmsg_token,
"uin": &#39;777&#39;,
"wxtoken": "777"
}
success = False
a=1
while not success:
ip_num = ranDom_ip()[0] # 使用不同的ip進(jìn)行閱讀、點(diǎn)贊量的獲取
try:
print("獲取閱讀量使用ip:%s"%ip_num)
content = requests.post(url, headers=headers, data=data, params=params, proxies=ip_num,timeout=6.6)#設置超時(shí)時(shí)間5秒
time.sleep(4)
content = content.json()
print(link)#文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num=content["appmsgstat"]["old_like_num"] #點(diǎn)贊量
zai_kan=content["appmsgstat"]["like_num"] #在看量
else:
readNum = 0
like_num = 0
success=True
return readNum, like_num
except:
print("獲取閱讀量ip出現問(wèn)題,更換ip進(jìn)入第二次循環(huán)獲?。。?!")
a+=1
# if a%5==0:
content = requests.post(url, headers=headers, data=data, params=params,timeout=5)
time.sleep(3)
content = content.json()
print(link) #文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num = content["appmsgstat"]["old_like_num"] # 點(diǎn)贊量
zai_kan = content["appmsgstat"]["like_num"] # 在看量
else:
print(&#39;文章閱讀點(diǎn)贊獲取失??!&#39;)
readNum=0
like_num=0
# else:
# continue
return readNum, like_num
  需要注意的是,在這三個(gè)重要參數中,phoneCookie 是時(shí)間敏感的,需要手動(dòng)更新,這是最麻煩的,就像 cookie 一樣。通過(guò)傳入的文章鏈接,我們可以在鏈接中提取一些有用的參數,用于后期拼接post請求。不好,所以代碼略顯冗余(需要改進(jìn))。
  四、使用UA代理和IP代理設置每個(gè)文章的爬取速度
  通過(guò)以上操作,我們基本可以爬取文章的鏈接、標題、鏈接,完成初步需求:
  
  但是我在開(kāi)心爬的時(shí)候發(fā)現很快就被反爬發(fā)現了,直接屏蔽了我公眾號的請求。
  
  這時(shí)候就想到了ip proxy來(lái)識別我們是否反爬,主要是從ip和UA,所以后來(lái)做了一個(gè)ip代理池,從一些ip網(wǎng)站爬取ip,通過(guò)了代碼大賽選擇有用的 IP 形成 IP 池。貢獻一段我爬ip的代碼,感興趣的朋友可以直接試試:
  import requests
from bs4 import BeautifulSoup
import json
import random
import re
ip_num=[]
url="http://www.66ip.cn/1.html"
headers={
"Host": "www.66ip.cn ",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Referer": "http://www.66ip.cn/index.html",
"Cookie": "Hm_lvt_1761fabf3c988e7f04bec51acd4073f4=1595575058,1595816310; Hm_lpvt_1761fabf3c988e7f04bec51acd4073f4=1595832351",
}
content=requests.get(url,headers=headers)
content.encoding="gbk"
html=BeautifulSoup(content.text,"html.parser")
# print(html)
content=html.find_all("table",{"border":"2px"})
ip=re.findall(&#39;(\d{1,4}.\d{1,4}.\d{1,4}.\d{1,4})&#39;,str(content))
port=re.findall(&#39;(\d{1,5})&#39;,str(content))
for i in range(len(port)):
ip_num.append(ip[i]+":"+port[i])
proxies = [{&#39;http&#39;:ip_num[num]} for num in range(len(ip_num))]
for i in range(0, len(ip_num)):
proxie = random.choice(proxies)
print("%s:當前使用的ip是:%s" % (i, proxie[&#39;http&#39;]))
try:
response = requests.get("http://mp.weixin.qq.com/", proxies=proxie, timeout=3)
print(response)
if response.status_code == 200:
# with open(&#39;ip.txt&#39;, "a", newline="")as f:
# f.write(proxie[&#39;http&#39;] + "\n")
print("保存成功")
except Exception as e:
print("ip不可用")
  我將過(guò)濾掉網(wǎng)站的ip,保存在本地,然后通過(guò)寫(xiě)一個(gè)函數來(lái)創(chuàng )建一個(gè)ip地址:
  #代理池函數
def ranDom_ip():
with open(&#39;ip.txt&#39;,"r")as f:
ip_num=f.read()
ip_list=ip_num.split("\n")
num=random.randint(0,len(ip_list)-1)
proxies = [{&#39;http&#39;: ip_list[num]}]
return proxies
  然后在函數循環(huán)中調用這個(gè)ip代理的函數,就可以不斷更新自己使用的ip。這是給你的流程圖,所以我們可以知道在哪里使用ip代理功能。
  
  通過(guò)將以上三個(gè)地方加入到我們使用的ip池中,不斷變化的ip就是成功繞過(guò)反爬的點(diǎn)。當我們不斷更改 ip 時(shí),我仍然感到有點(diǎn)不安全。我覺(jué)得UA也需要不斷更新,所以我導入了一個(gè)ua代理池
  from fake_useragent import UserAgent #導入UA代理池
user_agent=UserAgent()
  但需要注意的是,我們不能更改headers中的所有UA,我們只能添加UA代理的一部分,因為公眾號的請求是由兩部分組成的,我們只能添加前半部分。
  
  就像下面的請求頭一樣,我們的Ua代理只能替換前半部分,這樣Ua也是不斷變化的,而且變化的位置和上面ip函數的位置一樣,我們就可以實(shí)現ip,UA在之后每個(gè)請求都是不同的。
   headers={
"Host":"mp.weixin.qq.com",
"User-Agent":user_agent.random +"(KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2469 MMWEBSDK/200601 Mobile Safari/537.36 MMWEBID/3809 MicroMessenger/7.0.16.1680(0x27001033) Process/toolsmp WeChat/arm64 NetType/WIFI Language/zh_CN ABI/arm64"
}
  在這兩個(gè)參數之后,我們基本可以控制不被反爬蟲(chóng)發(fā)現了,但是還有一點(diǎn)很重要,就是控制爬取的速度,因為ip和ua是不斷變化的,但是你公眾號的cookie不能被改變。如果爬取速度過(guò)快,會(huì )識別出訪(fǎng)問(wèn)你公眾號某個(gè)界面的頻率太快,直接禁止你公眾號搜索的界面文章,所以我們需要做一個(gè)請求延遲,那么在這個(gè)過(guò)程中我們哪里可以做得更好呢?可以在流程圖中標記的位置進(jìn)行延遲。
  
  這樣既能控制速度,又能防止本地ip和ua被發(fā)現,妙不可言。缺點(diǎn)是我沒(méi)有找到高質(zhì)量的ip池。我用的是free ip,所以很多都是在換ip的過(guò)程中拿不到的。讀取量方面(窮人嘆),如果有高級IP代理池,速度是非??斓?。完整的代碼不會(huì )在這里粘貼。有興趣我可以私發(fā)。

querylist采集微信公眾號文章(querylist采集微信公眾號文章列表(關(guān)鍵詞)(圖))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-02-22 07:01 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章列表(關(guān)鍵詞)(圖))
  querylist采集微信公眾號文章列表請輸入關(guān)鍵詞,以微信公眾號文章為例。不然無(wú)法查詢(xún)。創(chuàng )建調研創(chuàng )建一個(gè)查詢(xún)調研選擇所有的開(kāi)放平臺數據(由于此是采集公眾號的文章,故名為查詢(xún)調研)通過(guò)鼠標拖動(dòng)的方式對查詢(xún)語(yǔ)句進(jìn)行調整:右鍵粘貼->刪除指定元素->確定通過(guò)在標注框中輸入公眾號數字->確定清晰度將無(wú)法更改,因為ga采集后需要驗證語(yǔ)句完整性:ga:-bin/ga-bin/release-bin/share?ie=utf-8ga-release::-bin/ga-bin/release-bin/share?ie=utf-8運行g(shù)a-bin/release-bin/release-bin/share?ie=utf-8release-bin就可以進(jìn)行上傳微信公眾號文章的調研了。
  運行sci-hubrawspiderforadobedirectmedia(百度網(wǎng)盤(pán))保存下來(lái)后:ga-bin/release-bin/release-bin/(在sci-hub獲取下來(lái)的)release-bin是可以更改的。1.yml格式:4個(gè)set。set(filename,listname,title,content,music,export)filename:文件名,如ga-bin.cp2sdm。
 ?。ㄕ埐榭次⑿殴娞栁恼拢﹍istname:文件名,如ga-bin.jdqtqbvator44n22685fa90&title:文件名,如ga-bin.rio(通過(guò)查看公眾號文章數字可得知)title:文件名,如ga-bin.jdqtqbvator4n22685fa90&content:文件名,如ga-bin.jdqtqbvator4n22685fa90&music:文件名,如ga-bin.emacs-dlspathr8mp4f269687-i&export:鏈接,如微信公眾號文章地址。
  2.xml格式:4個(gè)set。set(filename,url,value,offset)filename:文件名,如kij.xhie.ji.li.ja.lan.qqq.zh.tkj.g.ja.ga.jaj.tj.xz.ji.qq.csv(請查看微信公眾號文章地址)url:文件名,如ga-bin.hub.hpzr.xifc4zyr.gaj.hweb.home.hideprepath.hnk.exff.wb.xui.xx.xxz_xnxt.jp.me.xx.xx.join.xxjsw.class1.xxg.xx.xxg.zz(請查看微信公眾號文章地址)value:文件名,如ga-bin.ge.curl.xdata.gej.chstm.x1g.xhx.ji.gaj.chstm.x1g.zero.tkj.zh.tkj.sa.ji.zj.sa.zn.rk.ji.gaj.tj.zz.xx.xx1.ji.li.xx.xx.xx.xx.jp.xx.xx。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章列表(關(guān)鍵詞)(圖))
  querylist采集微信公眾號文章列表請輸入關(guān)鍵詞,以微信公眾號文章為例。不然無(wú)法查詢(xún)。創(chuàng )建調研創(chuàng )建一個(gè)查詢(xún)調研選擇所有的開(kāi)放平臺數據(由于此是采集公眾號的文章,故名為查詢(xún)調研)通過(guò)鼠標拖動(dòng)的方式對查詢(xún)語(yǔ)句進(jìn)行調整:右鍵粘貼->刪除指定元素->確定通過(guò)在標注框中輸入公眾號數字->確定清晰度將無(wú)法更改,因為ga采集后需要驗證語(yǔ)句完整性:ga:-bin/ga-bin/release-bin/share?ie=utf-8ga-release::-bin/ga-bin/release-bin/share?ie=utf-8運行g(shù)a-bin/release-bin/release-bin/share?ie=utf-8release-bin就可以進(jìn)行上傳微信公眾號文章的調研了。
  運行sci-hubrawspiderforadobedirectmedia(百度網(wǎng)盤(pán))保存下來(lái)后:ga-bin/release-bin/release-bin/(在sci-hub獲取下來(lái)的)release-bin是可以更改的。1.yml格式:4個(gè)set。set(filename,listname,title,content,music,export)filename:文件名,如ga-bin.cp2sdm。
 ?。ㄕ埐榭次⑿殴娞栁恼拢﹍istname:文件名,如ga-bin.jdqtqbvator44n22685fa90&title:文件名,如ga-bin.rio(通過(guò)查看公眾號文章數字可得知)title:文件名,如ga-bin.jdqtqbvator4n22685fa90&content:文件名,如ga-bin.jdqtqbvator4n22685fa90&music:文件名,如ga-bin.emacs-dlspathr8mp4f269687-i&export:鏈接,如微信公眾號文章地址。
  2.xml格式:4個(gè)set。set(filename,url,value,offset)filename:文件名,如kij.xhie.ji.li.ja.lan.qqq.zh.tkj.g.ja.ga.jaj.tj.xz.ji.qq.csv(請查看微信公眾號文章地址)url:文件名,如ga-bin.hub.hpzr.xifc4zyr.gaj.hweb.home.hideprepath.hnk.exff.wb.xui.xx.xxz_xnxt.jp.me.xx.xx.join.xxjsw.class1.xxg.xx.xxg.zz(請查看微信公眾號文章地址)value:文件名,如ga-bin.ge.curl.xdata.gej.chstm.x1g.xhx.ji.gaj.chstm.x1g.zero.tkj.zh.tkj.sa.ji.zj.sa.zn.rk.ji.gaj.tj.zz.xx.xx1.ji.li.xx.xx.xx.xx.jp.xx.xx。

querylist采集微信公眾號文章( Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 158 次瀏覽 ? 2022-02-21 08:11 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
)
  
  
  
  前言
  本文文字及圖片經(jīng)網(wǎng)絡(luò )過(guò)濾,僅供學(xué)習交流,不具有任何商業(yè)用途。如有任何問(wèn)題,請及時(shí)聯(lián)系我們處理。
  Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
  https://space.bilibili.com/523606542
  
  基礎開(kāi)發(fā)環(huán)境爬取兩個(gè)公眾號的文章:
  1、爬取所有文章
  青燈編程公眾號
  2、爬取所有關(guān)于python的公眾號文章
  爬取所有文章
  青燈編程公眾號
  1、登錄公眾號后點(diǎn)擊圖文
  
  2、打開(kāi)開(kāi)發(fā)者工具
  
  3、點(diǎn)擊超鏈接
  
  加載相關(guān)數據時(shí),有關(guān)于數據包的,包括文章標題、鏈接、摘要、發(fā)布時(shí)間等。你也可以選擇其他公眾號去爬取,但這需要你有微信公眾號。
  添加 cookie
  import pprint
import time
import requests
import csv
f = open('青燈公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(0, 40, 5):
url = f'https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin={page}&count=5&fakeid=&type=9&query=&token=1252678642&lang=zh_CN&f=json&ajax=1'
headers = {
'cookie': '加cookie',
'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&createType=0&token=1252678642&lang=zh_CN',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
html_data = response.json()
pprint.pprint(response.json())
lis = html_data['app_msg_list']
for li in lis:
title = li['title']
link_url = li['link']
update_time = li['update_time']
timeArray = time.localtime(int(update_time))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': link_url,
}
csv_writer.writerow(dit)
print(dit)
  爬取所有關(guān)于python的公眾號文章
  1、搜狗搜索python選擇微信
  
  注意:如果不登錄,只能爬取前十頁(yè)的數據。登錄后可以爬取2W多篇文章文章.
  2、抓取標題、公眾號、文章地址,抓取發(fā)布時(shí)的靜態(tài)網(wǎng)頁(yè)
  import time
import requests
import parsel
import csv
f = open('公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '公眾號', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(1, 2447):
url = f'https://weixin.sogou.com/weixin?query=python&_sug_type_=&s_from=input&_sug_=n&type=2&page={page}&ie=utf8'
headers = {
'Cookie': '自己的cookie',
'Host': 'weixin.sogou.com',
'Referer': 'https://www.sogou.com/web?query=python&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=1396&sst0=1610779538290&lkt=0%2C0%2C0&sugsuv=1590216228113568&sugtime=1610779538290',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
lis = selector.css('.news-list li')
for li in lis:
title_list = li.css('.txt-box h3 a::text').getall()
num = len(title_list)
if num == 1:
title_str = 'python' + title_list[0]
else:
title_str = 'python'.join(title_list)
href = li.css('.txt-box h3 a::attr(href)').get()
article_url = 'https://weixin.sogou.com' + href
name = li.css('.s-p a::text').get()
date = li.css('.s-p::attr(t)').get()
timeArray = time.localtime(int(date))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title_str,
'公眾號': name,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': article_url,
}
csv_writer.writerow(dit)
print(title_str, name, otherStyleTime, article_url)
   查看全部

  querylist采集微信公眾號文章(
Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
)
  
  
  
  前言
  本文文字及圖片經(jīng)網(wǎng)絡(luò )過(guò)濾,僅供學(xué)習交流,不具有任何商業(yè)用途。如有任何問(wèn)題,請及時(shí)聯(lián)系我們處理。
  Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
  https://space.bilibili.com/523606542
  
  基礎開(kāi)發(fā)環(huán)境爬取兩個(gè)公眾號的文章:
  1、爬取所有文章
  青燈編程公眾號
  2、爬取所有關(guān)于python的公眾號文章
  爬取所有文章
  青燈編程公眾號
  1、登錄公眾號后點(diǎn)擊圖文
  
  2、打開(kāi)開(kāi)發(fā)者工具
  
  3、點(diǎn)擊超鏈接
  
  加載相關(guān)數據時(shí),有關(guān)于數據包的,包括文章標題、鏈接、摘要、發(fā)布時(shí)間等。你也可以選擇其他公眾號去爬取,但這需要你有微信公眾號。
  添加 cookie
  import pprint
import time
import requests
import csv
f = open('青燈公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(0, 40, 5):
url = f'https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin={page}&count=5&fakeid=&type=9&query=&token=1252678642&lang=zh_CN&f=json&ajax=1'
headers = {
'cookie': '加cookie',
'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&createType=0&token=1252678642&lang=zh_CN',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
html_data = response.json()
pprint.pprint(response.json())
lis = html_data['app_msg_list']
for li in lis:
title = li['title']
link_url = li['link']
update_time = li['update_time']
timeArray = time.localtime(int(update_time))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': link_url,
}
csv_writer.writerow(dit)
print(dit)
  爬取所有關(guān)于python的公眾號文章
  1、搜狗搜索python選擇微信
  
  注意:如果不登錄,只能爬取前十頁(yè)的數據。登錄后可以爬取2W多篇文章文章.
  2、抓取標題、公眾號、文章地址,抓取發(fā)布時(shí)的靜態(tài)網(wǎng)頁(yè)
  import time
import requests
import parsel
import csv
f = open('公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '公眾號', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(1, 2447):
url = f'https://weixin.sogou.com/weixin?query=python&_sug_type_=&s_from=input&_sug_=n&type=2&page={page}&ie=utf8'
headers = {
'Cookie': '自己的cookie',
'Host': 'weixin.sogou.com',
'Referer': 'https://www.sogou.com/web?query=python&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=1396&sst0=1610779538290&lkt=0%2C0%2C0&sugsuv=1590216228113568&sugtime=1610779538290',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
lis = selector.css('.news-list li')
for li in lis:
title_list = li.css('.txt-box h3 a::text').getall()
num = len(title_list)
if num == 1:
title_str = 'python' + title_list[0]
else:
title_str = 'python'.join(title_list)
href = li.css('.txt-box h3 a::attr(href)').get()
article_url = 'https://weixin.sogou.com' + href
name = li.css('.s-p a::text').get()
date = li.css('.s-p::attr(t)').get()
timeArray = time.localtime(int(date))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title_str,
'公眾號': name,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': article_url,
}
csv_writer.writerow(dit)
print(title_str, name, otherStyleTime, article_url)
  

querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 138 次瀏覽 ? 2022-02-21 08:08 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class=&#39;login__type__container__select-type&#39;]").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name=&#39;account&#39;]")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name=&#39;password&#39;]")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class=&#39;btn_login&#39;]").click()
sleep(2)
# 微信登錄驗證
print(&#39;請掃描二維碼&#39;)
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item[&#39;name&#39;]] = item[&#39;value&#39;]
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open(&#39;cookie.txt&#39;, &#39;w+&#39;, encoding=&#39;utf-8&#39;) as f:
f.write(cookie_str)
print(&#39;cookie保存到本地成功&#39;)
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split(&#39;?&#39;)[1].split(&#39;&&#39;)
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split(&#39;=&#39;)[0]] = item.split(&#39;=&#39;)[1]
# 返回token
return paramdict[&#39;token&#39;]
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第二步:1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  url= &#39;https://mp.weixin.qq.com&#39;
headers = {
&#39;HOST&#39;: &#39;mp.weixin.qq.com&#39;,
&#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63&#39;
}
with open(&#39;cookie.txt&#39;, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = &#39;https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
&#39;action&#39;: &#39;search_biz&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;query&#39;: &#39;搜索的公眾號名稱(chēng)&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists= search_resp.json().get(&#39;list&#39;)[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid= lists.get(&#39;fakeid&#39;)
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  appmsg_url= &#39;https://mp.weixin.qq.com/cgi-bin/appmsg?&#39;
params_data = {
&#39;action&#39;: &#39;list_ex&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;fakeid&#39;: fakeid,
&#39;type&#39;: &#39;9&#39;,
&#39;query&#39;: &#39;&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。 查看全部

  querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class=&#39;login__type__container__select-type&#39;]").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name=&#39;account&#39;]")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name=&#39;password&#39;]")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class=&#39;btn_login&#39;]").click()
sleep(2)
# 微信登錄驗證
print(&#39;請掃描二維碼&#39;)
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item[&#39;name&#39;]] = item[&#39;value&#39;]
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open(&#39;cookie.txt&#39;, &#39;w+&#39;, encoding=&#39;utf-8&#39;) as f:
f.write(cookie_str)
print(&#39;cookie保存到本地成功&#39;)
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split(&#39;?&#39;)[1].split(&#39;&&#39;)
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split(&#39;=&#39;)[0]] = item.split(&#39;=&#39;)[1]
# 返回token
return paramdict[&#39;token&#39;]
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第二步:1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  url= &#39;https://mp.weixin.qq.com&#39;
headers = {
&#39;HOST&#39;: &#39;mp.weixin.qq.com&#39;,
&#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63&#39;
}
with open(&#39;cookie.txt&#39;, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = &#39;https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
&#39;action&#39;: &#39;search_biz&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;query&#39;: &#39;搜索的公眾號名稱(chēng)&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists= search_resp.json().get(&#39;list&#39;)[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid= lists.get(&#39;fakeid&#39;)
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  appmsg_url= &#39;https://mp.weixin.qq.com/cgi-bin/appmsg?&#39;
params_data = {
&#39;action&#39;: &#39;list_ex&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;fakeid&#39;: fakeid,
&#39;type&#39;: &#39;9&#39;,
&#39;query&#39;: &#39;&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。

querylist采集微信公眾號文章(微信公眾號爬取方式)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2022-02-20 09:12 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號爬取方式)
  最近在做自己的一個(gè)項目,涉及到需要通過(guò)python爬取微信公眾號文章。由于微信的獨特方法,無(wú)法直接爬取。在研究了一些 文章 之后,我可能會(huì )有一個(gè)想法。而且網(wǎng)上能查到的解決方案都沒(méi)有問(wèn)題,但是里面的代碼由于一些第三方庫的改動(dòng),基本無(wú)法使用。本文章是寫(xiě)給需要爬取公眾號文章的朋友,文章最后也會(huì )提供python源碼下載。
  ##公眾號抓取方式
  爬取公眾號主要有兩種方式。一是通過(guò)搜狗搜索微信公眾號頁(yè)面找到文章地址,然后爬取具體的文章內容;注冊公眾號然后通過(guò)公眾號的搜索界面查詢(xún)文章的地址,然后根據地址爬取文章的內容。
  這兩種方案各有優(yōu)缺點(diǎn)。通過(guò)搜狗搜索做的核心思想是通過(guò)request模擬搜狗搜索公眾號,然后解析搜索結果頁(yè)面,然后根據官方主頁(yè)地址爬取文章的詳細信息帳戶(hù)。但是這里需要注意,因為搜狗和騰訊的協(xié)議,只能顯示最新的10個(gè)文章,沒(méi)有辦法獲取所有的文章。如果你想得到文章的所有朋友,你可能不得不使用第二種方法。第二種方法的缺點(diǎn)是注冊公眾號通過(guò)騰訊認證比較麻煩,通過(guò)調用接口公眾號查詢(xún)接口進(jìn)行查詢(xún),但是翻頁(yè)需要通過(guò)selenium來(lái)模擬滑動(dòng)翻頁(yè)操作,整個(gè)過(guò)程比較麻煩。因為我的項目中不需要history文章,所以我使用搜狗搜索來(lái)爬取公眾號。
  爬取最近10個(gè)公眾號文章
  python需要依賴(lài)的三方庫如下:
  urllib,pyquery,請求,硒
  具體邏輯寫(xiě)在評論里,沒(méi)有特別復雜的地方。
  爬蟲(chóng)核心類(lèi)
  ````蟒蛇
  #!/usr/bin/python
  # 編碼:utf-8
  [Python] 純文本查看
  import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from urllib import quote
from pyquery import PyQuery as pq
import requests
import time
import re
import os
from selenium.webdriver import Chrome
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.wait import WebDriverWait
# 搜索入口地址,以公眾為關(guān)鍵字搜索該公眾號
def get_search_result_by_keywords(sogou_search_url):
# 爬蟲(chóng)偽裝頭部設置
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'}
# 設置操作超時(shí)時(shí)長(cháng)
timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
s = requests.Session()
log(u'搜索地址為:%s' % sogou_search_url)
return s.get(sogou_search_url, headers=headers, timeout=timeout).content
# 獲得公眾號主頁(yè)地址
def get_wx_url_by_sougou_search_html(sougou_search_html):
doc = pq(sougou_search_html)
return doc('div[class=txt-box]')('p[class=tit]')('a').attr('href')
# 使用webdriver 加載公眾號主頁(yè)內容,主要是js渲染的部分
def get_selenium_js_html(url):
options = Options()
options.add_argument('-headless') # 無(wú)頭參數
driver = Chrome(executable_path='chromedriver', chrome_options=options)
wait = WebDriverWait(driver, timeout=10)
driver.get(url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
html = driver.execute_script("return document.documentElement.outerHTML")
driver.close()
return html
# 獲取公眾號文章內容
def parse_wx_articles_by_html(selenium_html):
doc = pq(selenium_html)
return doc('div[class="weui_media_box appmsg"]')
# 將獲取到的文章轉換為字典
def switch_arctiles_to_list(articles):
# 定義存貯變量
articles_list = []
i = 1
# 遍歷找到的文章,解析里面的內容
if articles:
for article in articles.items():
log(u'開(kāi)始整合(%d/%d)' % (i, len(articles)))
# 處理單個(gè)文章
articles_list.append(parse_one_article(article))
i += 1
return articles_list
# 解析單篇文章
def parse_one_article(article):
article_dict = {}
# 獲取標題
title = article('h4[class="weui_media_title"]').text().strip()
###log(u'標題是: %s' % title)
# 獲取標題對應的地址
url = 'http://mp.weixin.qq.com' + article('h4[class="weui_media_title"]').attr('hrefs')
log(u'地址為: %s' % url)
# 獲取概要內容
summary = article('.weui_media_desc').text()
log(u'文章簡(jiǎn)述: %s' % summary)
# 獲取文章發(fā)表時(shí)間
date = article('.weui_media_extra_info').text().strip()
log(u'發(fā)表時(shí)間為: %s' % date)
# 獲取封面圖片
pic = parse_cover_pic(article)
# 返回字典數據
return {
'title': title,
'url': url,
'summary': summary,
'date': date,
'pic': pic
}
# 查找封面圖片,獲取封面圖片地址
def parse_cover_pic(article):
pic = article('.weui_media_hd').attr('style')
p = re.compile(r'background-image:url\((.*?)\)')
rs = p.findall(pic)
log(u'封面圖片是:%s ' % rs[0] if len(rs) > 0 else '')
return rs[0] if len(rs) > 0 else ''
# 自定義log函數,主要是加上時(shí)間
def log(msg):
print u'%s: %s' % (time.strftime('%Y-%m-%d_%H-%M-%S'), msg)
# 驗證函數
def need_verify(selenium_html):
' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 '
return pq(selenium_html)('#verify_change').text() != ''
# 創(chuàng )建公眾號命名的文件夾
def create_dir(keywords):
if not os.path.exists(keywords):
os.makedirs(keywords)
# 爬蟲(chóng)主函數
def run(keywords):
' 爬蟲(chóng)入口函數 '
# Step 0 : 創(chuàng )建公眾號命名的文件夾
create_dir(keywords)
# 搜狐微信搜索鏈接入口
sogou_search_url = 'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=' % quote(
keywords)
# Step 1:GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
log(u'開(kāi)始獲取,微信公眾號英文名為:%s' % keywords)
log(u'開(kāi)始調用sougou搜索引擎')
sougou_search_html = get_search_result_by_keywords(sogou_search_url)
# Step 2:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
log(u'獲取sougou_search_html成功,開(kāi)始抓取公眾號對應的主頁(yè)wx_url')
wx_url = get_wx_url_by_sougou_search_html(sougou_search_html)
log(u'獲取wx_url成功,%s' % wx_url)
# Step 3:Selenium+PhantomJs獲取js異步加載渲染后的html
log(u'開(kāi)始調用selenium渲染html')
selenium_html = get_selenium_js_html(wx_url)
# Step 4: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
if need_verify(selenium_html):
log(u'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試')
else:
# Step 5: 使用PyQuery,從Step 3獲取的html中解析出公眾號文章列表的數據
log(u'調用selenium渲染html完成,開(kāi)始解析公眾號文章')
articles = parse_wx_articles_by_html(selenium_html)
log(u'抓取到微信文章%d篇' % len(articles))
# Step 6: 把微信文章數據封裝成字典的list
log(u'開(kāi)始整合微信文章數據為字典')
articles_list = switch_arctiles_to_list(articles)
return [content['title'] for content in articles_list]
```
main入口函數:
```python
# coding: utf8
import spider_weixun_by_sogou
if __name__ == '__main__':
gongzhonghao = raw_input(u'input weixin gongzhonghao:')
if not gongzhonghao:
gongzhonghao = 'spider'
text = " ".join(spider_weixun_by_sogou.run(gongzhonghao))
print text
  ````
  直接運行main方法,在控制臺輸入你要爬取的公眾號英文名,中文的搜索結果可能有多個(gè),這里只搜索一個(gè),查看英文公眾號,直接點(diǎn)擊手機打開(kāi)公眾號,然后查看公眾號信息,可以看到如下爬蟲(chóng)結果爬取到文章的相關(guān)信息,文章的具體內容可以通過(guò)調用webdriver進(jìn)行爬取。 py 在代碼中。
  ![截圖2018-08-30 17.56.09](
  
  ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  爬取公眾號注意事項
  以下三點(diǎn)是我在爬取過(guò)程中遇到的一些問(wèn)題,希望能幫助大家避開(kāi)陷阱。
  1. Selenium 對 PhantomJS 的支持已被棄用,請使用無(wú)頭版本的 Chrome 或 Firefox 代替 warnings.warn('Selenium 對 PhantomJS 的支持已被棄用,請使用 headless '
  網(wǎng)上很多文章還在使用PhantomJS。事實(shí)上,Selenium 從去年開(kāi)始就沒(méi)有支持 PhantomJS?,F在,如果你使用 Selenium 來(lái)初始化瀏覽器,你需要使用 webdriver 來(lái)初始化 Chrome 或 Firefox 驅動(dòng)程序,而不需要 head 參數。
  詳情請參考官網(wǎng)鏈接:
  2. 無(wú)法連接到Service chromedriver/firefoxdriver
  我在開(kāi)發(fā)過(guò)程中也遇到過(guò)這個(gè)坑。這個(gè)問(wèn)題一般有兩種可能。一是沒(méi)有配置chromedriver或geckodriver的環(huán)境變量。這里需要注意chromedriver或者geckodriver文件的環(huán)境變量一定要配置到PATH中,或者干脆粗暴地將這兩個(gè)文件直接復制到/usr/bin目錄下;
  還有另一種可能是未配置主機。如果你發(fā)現這個(gè)問(wèn)題,檢查你的hosts文件是否沒(méi)有配置`127.0.0.1 localhost`,只要配置好了。
  這里還有一點(diǎn)需要注意的是,如果你使用的是chrome瀏覽器,還要注意chrome瀏覽器版本和chromedriver的對應關(guān)系??梢栽谶@個(gè)文章查看或者去google官網(wǎng)查看最新對應。.
  3. 抗吸血
  微信公眾號已經(jīng)對文章中的圖片進(jìn)行了防盜鏈處理,所以如果圖片在公眾號、小程序、PC瀏覽器以外的地方無(wú)法顯示,建議您閱讀本文文章了解如何應對微信防盜鏈。
  總結
  好了,上面說(shuō)了這么多。大家最關(guān)心的是源碼。這里是github地址:,如果好用記得用str。 查看全部

  querylist采集微信公眾號文章(微信公眾號爬取方式)
  最近在做自己的一個(gè)項目,涉及到需要通過(guò)python爬取微信公眾號文章。由于微信的獨特方法,無(wú)法直接爬取。在研究了一些 文章 之后,我可能會(huì )有一個(gè)想法。而且網(wǎng)上能查到的解決方案都沒(méi)有問(wèn)題,但是里面的代碼由于一些第三方庫的改動(dòng),基本無(wú)法使用。本文章是寫(xiě)給需要爬取公眾號文章的朋友,文章最后也會(huì )提供python源碼下載。
  ##公眾號抓取方式
  爬取公眾號主要有兩種方式。一是通過(guò)搜狗搜索微信公眾號頁(yè)面找到文章地址,然后爬取具體的文章內容;注冊公眾號然后通過(guò)公眾號的搜索界面查詢(xún)文章的地址,然后根據地址爬取文章的內容。
  這兩種方案各有優(yōu)缺點(diǎn)。通過(guò)搜狗搜索做的核心思想是通過(guò)request模擬搜狗搜索公眾號,然后解析搜索結果頁(yè)面,然后根據官方主頁(yè)地址爬取文章的詳細信息帳戶(hù)。但是這里需要注意,因為搜狗和騰訊的協(xié)議,只能顯示最新的10個(gè)文章,沒(méi)有辦法獲取所有的文章。如果你想得到文章的所有朋友,你可能不得不使用第二種方法。第二種方法的缺點(diǎn)是注冊公眾號通過(guò)騰訊認證比較麻煩,通過(guò)調用接口公眾號查詢(xún)接口進(jìn)行查詢(xún),但是翻頁(yè)需要通過(guò)selenium來(lái)模擬滑動(dòng)翻頁(yè)操作,整個(gè)過(guò)程比較麻煩。因為我的項目中不需要history文章,所以我使用搜狗搜索來(lái)爬取公眾號。
  爬取最近10個(gè)公眾號文章
  python需要依賴(lài)的三方庫如下:
  urllib,pyquery,請求,硒
  具體邏輯寫(xiě)在評論里,沒(méi)有特別復雜的地方。
  爬蟲(chóng)核心類(lèi)
  ````蟒蛇
  #!/usr/bin/python
  # 編碼:utf-8
  [Python] 純文本查看
  import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from urllib import quote
from pyquery import PyQuery as pq
import requests
import time
import re
import os
from selenium.webdriver import Chrome
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.wait import WebDriverWait
# 搜索入口地址,以公眾為關(guān)鍵字搜索該公眾號
def get_search_result_by_keywords(sogou_search_url):
# 爬蟲(chóng)偽裝頭部設置
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'}
# 設置操作超時(shí)時(shí)長(cháng)
timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
s = requests.Session()
log(u'搜索地址為:%s' % sogou_search_url)
return s.get(sogou_search_url, headers=headers, timeout=timeout).content
# 獲得公眾號主頁(yè)地址
def get_wx_url_by_sougou_search_html(sougou_search_html):
doc = pq(sougou_search_html)
return doc('div[class=txt-box]')('p[class=tit]')('a').attr('href')
# 使用webdriver 加載公眾號主頁(yè)內容,主要是js渲染的部分
def get_selenium_js_html(url):
options = Options()
options.add_argument('-headless') # 無(wú)頭參數
driver = Chrome(executable_path='chromedriver', chrome_options=options)
wait = WebDriverWait(driver, timeout=10)
driver.get(url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
html = driver.execute_script("return document.documentElement.outerHTML")
driver.close()
return html
# 獲取公眾號文章內容
def parse_wx_articles_by_html(selenium_html):
doc = pq(selenium_html)
return doc('div[class="weui_media_box appmsg"]')
# 將獲取到的文章轉換為字典
def switch_arctiles_to_list(articles):
# 定義存貯變量
articles_list = []
i = 1
# 遍歷找到的文章,解析里面的內容
if articles:
for article in articles.items():
log(u'開(kāi)始整合(%d/%d)' % (i, len(articles)))
# 處理單個(gè)文章
articles_list.append(parse_one_article(article))
i += 1
return articles_list
# 解析單篇文章
def parse_one_article(article):
article_dict = {}
# 獲取標題
title = article('h4[class="weui_media_title"]').text().strip()
###log(u'標題是: %s' % title)
# 獲取標題對應的地址
url = 'http://mp.weixin.qq.com' + article('h4[class="weui_media_title"]').attr('hrefs')
log(u'地址為: %s' % url)
# 獲取概要內容
summary = article('.weui_media_desc').text()
log(u'文章簡(jiǎn)述: %s' % summary)
# 獲取文章發(fā)表時(shí)間
date = article('.weui_media_extra_info').text().strip()
log(u'發(fā)表時(shí)間為: %s' % date)
# 獲取封面圖片
pic = parse_cover_pic(article)
# 返回字典數據
return {
'title': title,
'url': url,
'summary': summary,
'date': date,
'pic': pic
}
# 查找封面圖片,獲取封面圖片地址
def parse_cover_pic(article):
pic = article('.weui_media_hd').attr('style')
p = re.compile(r'background-image:url\((.*?)\)')
rs = p.findall(pic)
log(u'封面圖片是:%s ' % rs[0] if len(rs) > 0 else '')
return rs[0] if len(rs) > 0 else ''
# 自定義log函數,主要是加上時(shí)間
def log(msg):
print u'%s: %s' % (time.strftime('%Y-%m-%d_%H-%M-%S'), msg)
# 驗證函數
def need_verify(selenium_html):
' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 '
return pq(selenium_html)('#verify_change').text() != ''
# 創(chuàng )建公眾號命名的文件夾
def create_dir(keywords):
if not os.path.exists(keywords):
os.makedirs(keywords)
# 爬蟲(chóng)主函數
def run(keywords):
' 爬蟲(chóng)入口函數 '
# Step 0 : 創(chuàng )建公眾號命名的文件夾
create_dir(keywords)
# 搜狐微信搜索鏈接入口
sogou_search_url = 'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=' % quote(
keywords)
# Step 1:GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
log(u'開(kāi)始獲取,微信公眾號英文名為:%s' % keywords)
log(u'開(kāi)始調用sougou搜索引擎')
sougou_search_html = get_search_result_by_keywords(sogou_search_url)
# Step 2:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
log(u'獲取sougou_search_html成功,開(kāi)始抓取公眾號對應的主頁(yè)wx_url')
wx_url = get_wx_url_by_sougou_search_html(sougou_search_html)
log(u'獲取wx_url成功,%s' % wx_url)
# Step 3:Selenium+PhantomJs獲取js異步加載渲染后的html
log(u'開(kāi)始調用selenium渲染html')
selenium_html = get_selenium_js_html(wx_url)
# Step 4: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
if need_verify(selenium_html):
log(u'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試')
else:
# Step 5: 使用PyQuery,從Step 3獲取的html中解析出公眾號文章列表的數據
log(u'調用selenium渲染html完成,開(kāi)始解析公眾號文章')
articles = parse_wx_articles_by_html(selenium_html)
log(u'抓取到微信文章%d篇' % len(articles))
# Step 6: 把微信文章數據封裝成字典的list
log(u'開(kāi)始整合微信文章數據為字典')
articles_list = switch_arctiles_to_list(articles)
return [content['title'] for content in articles_list]
```
main入口函數:
```python
# coding: utf8
import spider_weixun_by_sogou
if __name__ == '__main__':
gongzhonghao = raw_input(u'input weixin gongzhonghao:')
if not gongzhonghao:
gongzhonghao = 'spider'
text = " ".join(spider_weixun_by_sogou.run(gongzhonghao))
print text
  ````
  直接運行main方法,在控制臺輸入你要爬取的公眾號英文名,中文的搜索結果可能有多個(gè),這里只搜索一個(gè),查看英文公眾號,直接點(diǎn)擊手機打開(kāi)公眾號,然后查看公眾號信息,可以看到如下爬蟲(chóng)結果爬取到文章的相關(guān)信息,文章的具體內容可以通過(guò)調用webdriver進(jìn)行爬取。 py 在代碼中。
  ![截圖2018-08-30 17.56.09](
  
  ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  爬取公眾號注意事項
  以下三點(diǎn)是我在爬取過(guò)程中遇到的一些問(wèn)題,希望能幫助大家避開(kāi)陷阱。
  1. Selenium 對 PhantomJS 的支持已被棄用,請使用無(wú)頭版本的 Chrome 或 Firefox 代替 warnings.warn('Selenium 對 PhantomJS 的支持已被棄用,請使用 headless '
  網(wǎng)上很多文章還在使用PhantomJS。事實(shí)上,Selenium 從去年開(kāi)始就沒(méi)有支持 PhantomJS?,F在,如果你使用 Selenium 來(lái)初始化瀏覽器,你需要使用 webdriver 來(lái)初始化 Chrome 或 Firefox 驅動(dòng)程序,而不需要 head 參數。
  詳情請參考官網(wǎng)鏈接:
  2. 無(wú)法連接到Service chromedriver/firefoxdriver
  我在開(kāi)發(fā)過(guò)程中也遇到過(guò)這個(gè)坑。這個(gè)問(wèn)題一般有兩種可能。一是沒(méi)有配置chromedriver或geckodriver的環(huán)境變量。這里需要注意chromedriver或者geckodriver文件的環(huán)境變量一定要配置到PATH中,或者干脆粗暴地將這兩個(gè)文件直接復制到/usr/bin目錄下;
  還有另一種可能是未配置主機。如果你發(fā)現這個(gè)問(wèn)題,檢查你的hosts文件是否沒(méi)有配置`127.0.0.1 localhost`,只要配置好了。
  這里還有一點(diǎn)需要注意的是,如果你使用的是chrome瀏覽器,還要注意chrome瀏覽器版本和chromedriver的對應關(guān)系??梢栽谶@個(gè)文章查看或者去google官網(wǎng)查看最新對應。.
  3. 抗吸血
  微信公眾號已經(jīng)對文章中的圖片進(jìn)行了防盜鏈處理,所以如果圖片在公眾號、小程序、PC瀏覽器以外的地方無(wú)法顯示,建議您閱讀本文文章了解如何應對微信防盜鏈。
  總結
  好了,上面說(shuō)了這么多。大家最關(guān)心的是源碼。這里是github地址:,如果好用記得用str。

querylist采集微信公眾號文章(采集微信文章和采集網(wǎng)站內容一樣的查看方法獲取到一個(gè))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 141 次瀏覽 ? 2022-02-19 16:16 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(采集微信文章和采集網(wǎng)站內容一樣的查看方法獲取到一個(gè))
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。因此,我們需要使用anyproxy,通過(guò)上篇文章文章介紹的方法,獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  http://mp.weixin.qq.com/mp/get ... r%3D1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,我們還可以制作一個(gè)收錄密鑰和尚未過(guò)期的密鑰的程序。提交pass_ticket的鏈接地址,然后可以通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
"list": [
{
"app_msg_ext_info": {
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
"digest": "擦亮雙眼,遠離謠言。",
"fileid": 505283695,
"is_multi": 1,
"multi_app_msg_item_list": [
{
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
"digest": "12月28日,廣州亞運城綜合體育館,內附購票入口~",
"fileid": 0,
"source_url": "http://wechat.show.wepiao.com/ ... ot%3B,
"title": "2017微信公開(kāi)課Pro版即將召開(kāi)"
},
...//循環(huán)被省略
],
"source_url": "",
"subtype": 9,
"title": "謠言熱榜 | 十一月朋友圈十大謠言"
},
"comm_msg_info": {
"content": "",
"datetime": 1480933315,
"fakeid": "3093134871",
"id": 1000000010,
"status": 2,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list": [ //最外層的鍵名;只出現一次,所有內容都被它包含。
{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
"app_msg_ext_info":{//圖文消息的擴展信息
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": "摘要",
"is_multi": "是否多圖文,值為1和0",
"multi_app_msg_item_list": [//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
{
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": ""摘要"",
"source_url": "閱讀原文的地址",
"title": "子內容標題"
},
...//循環(huán)被省略
],
"source_url": "閱讀原文的地址",
"title": "頭條標題"
},
"comm_msg_info":{//圖文消息的基本信息
"datetime": &#39;發(fā)布時(shí)間,值為unix時(shí)間戳&#39;,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
  這里要提的另外一點(diǎn)是,如果要獲取較舊的歷史消息的內容,需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  現在我們可以通過(guò)公眾號的歷史消息獲取文章的列表。在下一篇文章中,我將介紹如何根據歷史新聞中文章的鏈接地址獲取文章@。&gt; 內容特定的方法。關(guān)于如何保存文章、封面圖片、全文檢索也有一些經(jīng)驗。
  持續更新,微信公眾號文章批量采集系統建設
  微信公眾號入口文章采集--歷史新聞頁(yè)面詳解
  微信公眾號文章頁(yè)面和采集分析
  提高微信公眾號文章采集的效率,anyproxy的高級使用 查看全部

  querylist采集微信公眾號文章(采集微信文章和采集網(wǎng)站內容一樣的查看方法獲取到一個(gè))
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。因此,我們需要使用anyproxy,通過(guò)上篇文章文章介紹的方法,獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  http://mp.weixin.qq.com/mp/get ... r%3D1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,我們還可以制作一個(gè)收錄密鑰和尚未過(guò)期的密鑰的程序。提交pass_ticket的鏈接地址,然后可以通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
"list": [
{
"app_msg_ext_info": {
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
"digest": "擦亮雙眼,遠離謠言。",
"fileid": 505283695,
"is_multi": 1,
"multi_app_msg_item_list": [
{
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
"digest": "12月28日,廣州亞運城綜合體育館,內附購票入口~",
"fileid": 0,
"source_url": "http://wechat.show.wepiao.com/ ... ot%3B,
"title": "2017微信公開(kāi)課Pro版即將召開(kāi)"
},
...//循環(huán)被省略
],
"source_url": "",
"subtype": 9,
"title": "謠言熱榜 | 十一月朋友圈十大謠言"
},
"comm_msg_info": {
"content": "",
"datetime": 1480933315,
"fakeid": "3093134871",
"id": 1000000010,
"status": 2,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list": [ //最外層的鍵名;只出現一次,所有內容都被它包含。
{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
"app_msg_ext_info":{//圖文消息的擴展信息
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": "摘要",
"is_multi": "是否多圖文,值為1和0",
"multi_app_msg_item_list": [//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
{
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": ""摘要"",
"source_url": "閱讀原文的地址",
"title": "子內容標題"
},
...//循環(huán)被省略
],
"source_url": "閱讀原文的地址",
"title": "頭條標題"
},
"comm_msg_info":{//圖文消息的基本信息
"datetime": &#39;發(fā)布時(shí)間,值為unix時(shí)間戳&#39;,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
  這里要提的另外一點(diǎn)是,如果要獲取較舊的歷史消息的內容,需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  現在我們可以通過(guò)公眾號的歷史消息獲取文章的列表。在下一篇文章中,我將介紹如何根據歷史新聞中文章的鏈接地址獲取文章@。&gt; 內容特定的方法。關(guān)于如何保存文章、封面圖片、全文檢索也有一些經(jīng)驗。
  持續更新,微信公眾號文章批量采集系統建設
  微信公眾號入口文章采集--歷史新聞頁(yè)面詳解
  微信公眾號文章頁(yè)面和采集分析
  提高微信公眾號文章采集的效率,anyproxy的高級使用

querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 177 次瀏覽 ? 2022-03-11 16:27 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
  之前自己維護了一個(gè)公眾號,但是因為個(gè)人關(guān)系,很久沒(méi)有更新了。今天來(lái)緬懷一下,偶然發(fā)現了一個(gè)獲取微信公眾號文章的方法。
  之前的獲取方式有很多??梢酝ㄟ^(guò)搜狗、青博、網(wǎng)頁(yè)、客戶(hù)端等方式使用,這個(gè)可能不如其他的好,但是操作簡(jiǎn)單易懂。
  所以,首先你需要有一個(gè)微信公眾平臺的賬號
  微信公眾平臺:
  
  登錄后進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
  
  選擇自創(chuàng )圖形:
  
  好像是公眾號運營(yíng)教學(xué)
  進(jìn)入編輯頁(yè)面后,單擊超鏈接
  
  彈出選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表。
  
  可以打開(kāi)控制臺查看請求的界面,這不奇怪嗎
  
  打開(kāi)響應,也就是我們需要的 文章 鏈接
  
  確定數據后,我們需要對接口進(jìn)行分析。
  感覺(jué)很簡(jiǎn)單,一個(gè)GET請求,攜帶一些參數。
  
  fakeid 是公眾號的唯一 ID,所以如果要直接通過(guò)名稱(chēng)獲取 文章 的列表,則需要先獲取 fakeid。
  當我們輸入公眾號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹接|發(fā)了搜索界面,返回了fakeid。
  
  這個(gè)接口不需要很多參數。
  
  接下來(lái),我們可以使用代碼來(lái)模擬上述操作。
  但是,也有必要使用現有的 cookie 來(lái)避免登錄。
  
  當前的cookie過(guò)期日期,我沒(méi)有測試過(guò)??赡苄枰粫r(shí)更新 cookie。
  測試代碼:
  
import requests
import json
Cookie = "請換上自己的Cookie,獲取方法:直接復制下來(lái)"
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": "Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36"
}
keyword = "pythonlx" # 公眾號名字:可自定義
token = "你的token" # 獲取方法:如上述 直接復制下來(lái)
search_url = "https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1".format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext["list"][0]["fakeid"]
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
  這樣就可以獲得最新的10篇文章文章。如果想獲取更多歷史文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
  但如果你想大規模刮:
  請為自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,并準備好多個(gè)賬號,以減少被封號的可能性。
  以上就是本文的全部?jì)热?,希望對大家的學(xué)習有所幫助,也希望大家多多支持云海天教程。 查看全部

  querylist采集微信公眾號文章(一個(gè)獲取微信公眾號文章的方法,你知道嗎?)
  之前自己維護了一個(gè)公眾號,但是因為個(gè)人關(guān)系,很久沒(méi)有更新了。今天來(lái)緬懷一下,偶然發(fā)現了一個(gè)獲取微信公眾號文章的方法。
  之前的獲取方式有很多??梢酝ㄟ^(guò)搜狗、青博、網(wǎng)頁(yè)、客戶(hù)端等方式使用,這個(gè)可能不如其他的好,但是操作簡(jiǎn)單易懂。
  所以,首先你需要有一個(gè)微信公眾平臺的賬號
  微信公眾平臺:
  
  登錄后進(jìn)入首頁(yè),點(diǎn)擊新建群發(fā)。
  
  選擇自創(chuàng )圖形:
  
  好像是公眾號運營(yíng)教學(xué)
  進(jìn)入編輯頁(yè)面后,單擊超鏈接
  
  彈出選擇框,我們在框中輸入對應的公眾號名稱(chēng),就會(huì )出現對應的文章列表。
  
  可以打開(kāi)控制臺查看請求的界面,這不奇怪嗎
  
  打開(kāi)響應,也就是我們需要的 文章 鏈接
  
  確定數據后,我們需要對接口進(jìn)行分析。
  感覺(jué)很簡(jiǎn)單,一個(gè)GET請求,攜帶一些參數。
  
  fakeid 是公眾號的唯一 ID,所以如果要直接通過(guò)名稱(chēng)獲取 文章 的列表,則需要先獲取 fakeid。
  當我們輸入公眾號名稱(chēng)時(shí),點(diǎn)擊搜索??梢钥吹接|發(fā)了搜索界面,返回了fakeid。
  
  這個(gè)接口不需要很多參數。
  
  接下來(lái),我們可以使用代碼來(lái)模擬上述操作。
  但是,也有必要使用現有的 cookie 來(lái)避免登錄。
  
  當前的cookie過(guò)期日期,我沒(méi)有測試過(guò)??赡苄枰粫r(shí)更新 cookie。
  測試代碼:
  
import requests
import json
Cookie = "請換上自己的Cookie,獲取方法:直接復制下來(lái)"
url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
headers = {
"Cookie": Cookie,
"User-Agent": "Mozilla/5.0 (Linux; Android 10; YAL-AL00 Build/HUAWEIYAL-AL00) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/70.0.3538.64 HuaweiBrowser/10.0.1.335 Mobile Safari/537.36"
}
keyword = "pythonlx" # 公眾號名字:可自定義
token = "你的token" # 獲取方法:如上述 直接復制下來(lái)
search_url = "https://mp.weixin.qq.com/cgi-b ... ry%3D{}&token={}&lang=zh_CN&f=json&ajax=1".format(keyword,token)
doc = requests.get(search_url,headers=headers).text
jstext = json.loads(doc)
fakeid = jstext["list"][0]["fakeid"]
data = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": 0,
"count": "5",
"query": "",
"fakeid": fakeid,
"type": "9",
}
json_test = requests.get(url, headers=headers, params=data).text
json_test = json.loads(json_test)
print(json_test)
  這樣就可以獲得最新的10篇文章文章。如果想獲取更多歷史文章,可以修改數據中的“begin”參數,0為第一頁(yè),5為第二頁(yè),10為第三頁(yè)(以此類(lèi)推)
  但如果你想大規模刮:
  請為自己安排一個(gè)穩定的代理,降低爬蟲(chóng)速度,并準備好多個(gè)賬號,以減少被封號的可能性。
  以上就是本文的全部?jì)热?,希望對大家的學(xué)習有所幫助,也希望大家多多支持云海天教程。

querylist采集微信公眾號文章(爬取大牛用微信公眾號爬取程序的難點(diǎn)及解決辦法)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 149 次瀏覽 ? 2022-03-11 16:25 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(爬取大牛用微信公眾號爬取程序的難點(diǎn)及解決辦法)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  附上大牛的鏈接文章:寫(xiě)php或者只需要爬取思路的可以直接看這個(gè)。這些想法寫(xiě)得很詳細。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   
  記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
   1 replaceServerResDataAsync: function(req,res,serverResData,callback){
2 if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
3 //console.log("開(kāi)始第一種頁(yè)面爬取");
4 if(serverResData.toString() !== ""){
5 6 try {//防止報錯退出程序
7 var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
8 var ret = reg.exec(serverResData.toString());//轉換變量為string
9 HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
10 var http = require('http');
11 http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
12 res.on('data', function(chunk){
13 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
14 })
15 });
16 }catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
17 //console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
18 try {
19 var json = JSON.parse(serverResData.toString());
20 if (json.general_msg_list != []) {
21 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
22 }
23 }catch(e){
24 console.log(e);//錯誤捕捉
25 }
26 callback(serverResData);//直接返回第二頁(yè)json內容
27 }
28 }
29 //console.log("開(kāi)始第一種頁(yè)面爬取 結束");
30 }else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
31 try {
32 var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
33 var ret = reg.exec(serverResData.toString());//轉換變量為string
34 HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
35 var http = require('http');
36 http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
37 res.on('data', function(chunk){
38 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
39 })
40 });
41 }catch(e){
42 //console.log(e);
43 callback(serverResData);
44 }
45 }else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
46 try {
47 var json = JSON.parse(serverResData.toString());
48 if (json.general_msg_list != []) {
49 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
50 }
51 }catch(e){
52 console.log(e);
53 }
54 callback(serverResData);
55 }else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
56 try {
57 HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
58 }catch(e){
59
60 }
61 callback(serverResData);
62 }else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
63 try {
64 var http = require('http');
65 http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
66 res.on('data', function(chunk){
67 callback(chunk+serverResData);
68 })
69 });
70 }catch(e){
71 callback(serverResData);
72 }
73 }else{
74 callback(serverResData);
75 }
76 //callback(serverResData);
77 },
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。 查看全部

  querylist采集微信公眾號文章(爬取大牛用微信公眾號爬取程序的難點(diǎn)及解決辦法)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  附上大牛的鏈接文章:寫(xiě)php或者只需要爬取思路的可以直接看這個(gè)。這些想法寫(xiě)得很詳細。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- ----------------------------------
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   
  記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
   1 replaceServerResDataAsync: function(req,res,serverResData,callback){
2 if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
3 //console.log("開(kāi)始第一種頁(yè)面爬取");
4 if(serverResData.toString() !== ""){
5 6 try {//防止報錯退出程序
7 var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
8 var ret = reg.exec(serverResData.toString());//轉換變量為string
9 HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
10 var http = require('http');
11 http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
12 res.on('data', function(chunk){
13 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
14 })
15 });
16 }catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
17 //console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
18 try {
19 var json = JSON.parse(serverResData.toString());
20 if (json.general_msg_list != []) {
21 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
22 }
23 }catch(e){
24 console.log(e);//錯誤捕捉
25 }
26 callback(serverResData);//直接返回第二頁(yè)json內容
27 }
28 }
29 //console.log("開(kāi)始第一種頁(yè)面爬取 結束");
30 }else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
31 try {
32 var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
33 var ret = reg.exec(serverResData.toString());//轉換變量為string
34 HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
35 var http = require('http');
36 http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
37 res.on('data', function(chunk){
38 callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
39 })
40 });
41 }catch(e){
42 //console.log(e);
43 callback(serverResData);
44 }
45 }else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
46 try {
47 var json = JSON.parse(serverResData.toString());
48 if (json.general_msg_list != []) {
49 HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
50 }
51 }catch(e){
52 console.log(e);
53 }
54 callback(serverResData);
55 }else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
56 try {
57 HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
58 }catch(e){
59
60 }
61 callback(serverResData);
62 }else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
63 try {
64 var http = require('http');
65 http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
66 res.on('data', function(chunk){
67 callback(chunk+serverResData);
68 })
69 });
70 }catch(e){
71 callback(serverResData);
72 }
73 }else{
74 callback(serverResData);
75 }
76 //callback(serverResData);
77 },
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。

querylist采集微信公眾號文章( 小編來(lái)一起通過(guò)示例代碼介紹的詳細學(xué)習方法(二))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 372 次瀏覽 ? 2022-03-09 09:14 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
小編來(lái)一起通過(guò)示例代碼介紹的詳細學(xué)習方法(二))
  Python微信公眾號文章爬取示例代碼
  更新時(shí)間:2020-11-30 08:31:45 作者:智小白
  本文文章主要介紹Python微信公眾號文章爬取的示例代碼。文章中對示例代碼進(jìn)行了非常詳細的介紹。對大家的學(xué)習或工作有一定的參考和學(xué)習價(jià)值。需要的小伙伴一起來(lái)和小編一起學(xué)習吧
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)web鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應賬號密碼,點(diǎn)擊登錄,出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  
lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  
fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章爬取內容請搜索腳本。首頁(yè)文章或繼續瀏覽以下相關(guān)文章希望大家以后多多支持Script Home! 查看全部

  querylist采集微信公眾號文章(
小編來(lái)一起通過(guò)示例代碼介紹的詳細學(xué)習方法(二))
  Python微信公眾號文章爬取示例代碼
  更新時(shí)間:2020-11-30 08:31:45 作者:智小白
  本文文章主要介紹Python微信公眾號文章爬取的示例代碼。文章中對示例代碼進(jìn)行了非常詳細的介紹。對大家的學(xué)習或工作有一定的參考和學(xué)習價(jià)值。需要的小伙伴一起來(lái)和小編一起學(xué)習吧
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)web鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  
def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get('https://mp.weixin.qq.com/')
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name='account']")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name='password']")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class='btn_login']").click()
sleep(2)
# 微信登錄驗證
print('請掃描二維碼')
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get('https://mp.weixin.qq.com/')
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item['name']] = item['value']
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open('cookie.txt', 'w+', encoding='utf-8') as f:
f.write(cookie_str)
print('cookie保存到本地成功')
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split('?')[1].split('&')
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split('=')[0]] = item.split('=')[1]
# 返回token
return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應賬號密碼,點(diǎn)擊登錄,出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  
url = 'https://mp.weixin.qq.com'
headers = {
'HOST': 'mp.weixin.qq.com',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'
}
with open('cookie.txt', 'r', encoding='utf-8') as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'
params = {
'action': 'search_biz',
'begin': '0',
'count': '5',
'query': '搜索的公眾號名稱(chēng)',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  
lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  
fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  
appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'
params_data = {
'action': 'list_ex',
'begin': '0',
'count': '5',
'fakeid': fakeid,
'type': '9',
'query': '',
'token': token,
'lang': 'zh_CN',
'f': 'json',
'ajax': '1'
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章爬取內容請搜索腳本。首頁(yè)文章或繼續瀏覽以下相關(guān)文章希望大家以后多多支持Script Home!

querylist采集微信公眾號文章(querylist采集微信公眾號文章歷史文章,文章精度達到10-20)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 98 次瀏覽 ? 2022-03-07 21:04 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章歷史文章,文章精度達到10-20)
  querylist采集微信公眾號文章歷史文章,文章精度可以達到10-20,并且支持全自動(dòng)重復、非自動(dòng)重復,根據用戶(hù)使用習慣、內容質(zhì)量、微信轉發(fā)量自動(dòng)切換頻率。1querylist簡(jiǎn)介querylist是一個(gè)query引擎,其基于微信公眾號文章api的下載、抓取數據等模塊,對api調用進(jìn)行封裝。其主要目的是為后面進(jìn)行微信公眾號文章原始爬取、微信文章url抓取,中間的分詞等底層實(shí)現的封裝。
  queryset在微信中已有的webviewtextfield對象。queryset封裝了page對象,包含了通過(guò)一些統一api來(lái)獲取query的目標網(wǎng)頁(yè)的document對象,以及可能封裝的另外一些api,比如返回結果所對應的頁(yè)面布局名。2用例3webview分頁(yè)爬?。?。
  1)webview分頁(yè)抓取
  1、發(fā)現頁(yè)代碼分詞
  2、querylist過(guò)濾關(guān)鍵詞
  3、webview網(wǎng)頁(yè)抓取
  4、webview布局抓取
  5、webviewurl獲取
  6、頁(yè)面抓取結果保存
  7、爬取到頁(yè)面的圖片和視頻
  8、保存數據并發(fā)布公眾號文章內容3page實(shí)現imgurl解析
  2)egret中的imgurlwithloadret中以url的形式獲取imgurlurl,由于微信公眾號的文章url是不能修改的,可以理解為用url在大數據庫中找list的位置。使用一個(gè)生成器(webviewpath)去循環(huán)獲取每一個(gè)頁(yè)面鏈接的imgurlurl。這里有一個(gè)小坑需要注意。因為微信公眾號的文章是爬取到一定量后統一發(fā)布,所以當服務(wù)器返回解析結果在imgurlurl后是一個(gè)對象,然后再通過(guò)txt中的url獲取對應imgurl。
  url獲取方式是一個(gè)通用的方法,由于沒(méi)有更多必要的方法,所以最好避免在請求獲取url時(shí)使用name實(shí)例,應該直接使用實(shí)際爬取的頁(yè)面id。微信在處理過(guò)程中,會(huì )優(yōu)先保證我們獲取的url是可以正常使用的,如果某個(gè)頁(yè)面的url無(wú)法獲取到是會(huì )返回異常。下面來(lái)看一下微信是如何去獲取文章url中的字符串值的。
  首先f(wàn)unctiongetmessages(mode){varpage=math.max(mode,page)varquerystr=math.min(math.random()*100,10
  0)returnquerystr}url(https)獲取出來(lái)的是mp4,微信解析得到的querystr是通過(guò)字符串獲取,而在微信的字符串中只有十進(jìn)制數字,所以微信的解析結果中的數字不是對應imgurlurlurl的16進(jìn)制形式。再看一下我們需要獲取的url與解析出來(lái)的txt形式的imgurlurlurl之間的轉換代碼:varimgurlurl=textfield({'type':'url','name':'btn','path':'/url'}).append('/'+imgurlurl)最終,mp4圖片的url就獲取出來(lái)了。
  使用link實(shí)現顯示的代碼如下:varbuffereduseragent='myorigin:apple;user-agen。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章歷史文章,文章精度達到10-20)
  querylist采集微信公眾號文章歷史文章,文章精度可以達到10-20,并且支持全自動(dòng)重復、非自動(dòng)重復,根據用戶(hù)使用習慣、內容質(zhì)量、微信轉發(fā)量自動(dòng)切換頻率。1querylist簡(jiǎn)介querylist是一個(gè)query引擎,其基于微信公眾號文章api的下載、抓取數據等模塊,對api調用進(jìn)行封裝。其主要目的是為后面進(jìn)行微信公眾號文章原始爬取、微信文章url抓取,中間的分詞等底層實(shí)現的封裝。
  queryset在微信中已有的webviewtextfield對象。queryset封裝了page對象,包含了通過(guò)一些統一api來(lái)獲取query的目標網(wǎng)頁(yè)的document對象,以及可能封裝的另外一些api,比如返回結果所對應的頁(yè)面布局名。2用例3webview分頁(yè)爬?。?。
  1)webview分頁(yè)抓取
  1、發(fā)現頁(yè)代碼分詞
  2、querylist過(guò)濾關(guān)鍵詞
  3、webview網(wǎng)頁(yè)抓取
  4、webview布局抓取
  5、webviewurl獲取
  6、頁(yè)面抓取結果保存
  7、爬取到頁(yè)面的圖片和視頻
  8、保存數據并發(fā)布公眾號文章內容3page實(shí)現imgurl解析
  2)egret中的imgurlwithloadret中以url的形式獲取imgurlurl,由于微信公眾號的文章url是不能修改的,可以理解為用url在大數據庫中找list的位置。使用一個(gè)生成器(webviewpath)去循環(huán)獲取每一個(gè)頁(yè)面鏈接的imgurlurl。這里有一個(gè)小坑需要注意。因為微信公眾號的文章是爬取到一定量后統一發(fā)布,所以當服務(wù)器返回解析結果在imgurlurl后是一個(gè)對象,然后再通過(guò)txt中的url獲取對應imgurl。
  url獲取方式是一個(gè)通用的方法,由于沒(méi)有更多必要的方法,所以最好避免在請求獲取url時(shí)使用name實(shí)例,應該直接使用實(shí)際爬取的頁(yè)面id。微信在處理過(guò)程中,會(huì )優(yōu)先保證我們獲取的url是可以正常使用的,如果某個(gè)頁(yè)面的url無(wú)法獲取到是會(huì )返回異常。下面來(lái)看一下微信是如何去獲取文章url中的字符串值的。
  首先f(wàn)unctiongetmessages(mode){varpage=math.max(mode,page)varquerystr=math.min(math.random()*100,10
  0)returnquerystr}url(https)獲取出來(lái)的是mp4,微信解析得到的querystr是通過(guò)字符串獲取,而在微信的字符串中只有十進(jìn)制數字,所以微信的解析結果中的數字不是對應imgurlurlurl的16進(jìn)制形式。再看一下我們需要獲取的url與解析出來(lái)的txt形式的imgurlurlurl之間的轉換代碼:varimgurlurl=textfield({'type':'url','name':'btn','path':'/url'}).append('/'+imgurlurl)最終,mp4圖片的url就獲取出來(lái)了。
  使用link實(shí)現顯示的代碼如下:varbuffereduseragent='myorigin:apple;user-agen。

querylist采集微信公眾號文章(【querylist采集】chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 108 次瀏覽 ? 2022-03-07 15:01 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(【querylist采集】chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome)
  querylist采集微信公眾號文章索引用于智能推薦。chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome的googleanalytics。1.usergeneratedquerytoselectwhethertheuserisattributedtosuchaquery.2.isthereanyquerywithwhethertheusershouldhaveitemswithwhethertheuserownsthem3.googleanalytics’swhichitemsruntosharesentimentusinggoogleanalyticsandtheseeventsprettylikeavocabularytosawcreatingaquerythatrunsquerytranslationtoquerylength:---translationabout4pages,1pagesused---datetofindclosetermsifyoudon’treadapageordon’tgoogleanalyticsforlongerpages4.設置移動(dòng)端分析設置移動(dòng)端分析。
  你能說(shuō)下電腦頁(yè)面的情況嗎?可以選擇國內地址,如騰訊,方正。
  當一個(gè)人迷茫的時(shí)候,就發(fā)揮下人性,百度,360,你會(huì )找到答案,誰(shuí)都不想生病,但是生病的是很痛苦,所以我選擇喝喝下你,你病了,但是你不要難過(guò),好好休息,感情這個(gè)事情就像刮風(fēng)下雨不是你的錯,你選擇多多的過(guò)一會(huì ),只要你覺(jué)得你生活在一個(gè)美好的世界,你的生活會(huì )變的不一樣,現在你應該適應這個(gè)世界,而不是一個(gè)人感覺(jué)沒(méi)事,等老了也會(huì )找到一個(gè)讓你放松一下的,愛(ài)人。 查看全部

  querylist采集微信公眾號文章(【querylist采集】chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome)
  querylist采集微信公眾號文章索引用于智能推薦。chrome下的googleanalytics,推薦使用chrome自帶的登錄chrome的googleanalytics。1.usergeneratedquerytoselectwhethertheuserisattributedtosuchaquery.2.isthereanyquerywithwhethertheusershouldhaveitemswithwhethertheuserownsthem3.googleanalytics’swhichitemsruntosharesentimentusinggoogleanalyticsandtheseeventsprettylikeavocabularytosawcreatingaquerythatrunsquerytranslationtoquerylength:---translationabout4pages,1pagesused---datetofindclosetermsifyoudon’treadapageordon’tgoogleanalyticsforlongerpages4.設置移動(dòng)端分析設置移動(dòng)端分析。
  你能說(shuō)下電腦頁(yè)面的情況嗎?可以選擇國內地址,如騰訊,方正。
  當一個(gè)人迷茫的時(shí)候,就發(fā)揮下人性,百度,360,你會(huì )找到答案,誰(shuí)都不想生病,但是生病的是很痛苦,所以我選擇喝喝下你,你病了,但是你不要難過(guò),好好休息,感情這個(gè)事情就像刮風(fēng)下雨不是你的錯,你選擇多多的過(guò)一會(huì ),只要你覺(jué)得你生活在一個(gè)美好的世界,你的生活會(huì )變的不一樣,現在你應該適應這個(gè)世界,而不是一個(gè)人感覺(jué)沒(méi)事,等老了也會(huì )找到一個(gè)讓你放松一下的,愛(ài)人。

querylist采集微信公眾號文章(【querylist采集】微信公眾號文章排行榜(一))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 119 次瀏覽 ? 2022-03-07 10:02 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(【querylist采集】微信公眾號文章排行榜(一))
  querylist采集微信公眾號文章排行榜tips:1.查看微信公眾號文章排行榜2.查看文章鏈接,以及未讀文章所在的列表。3.查看可選擇的自定義菜單,一篇文章有多個(gè)自定義菜單的話(huà),菜單是:投票、鏈接、二維碼、新聞、文章標題等。4.頁(yè)面上一個(gè)自定義菜單可添加多個(gè)自定義頁(yè)面,自定義頁(yè)面可以是專(zhuān)欄頁(yè)面、文章列表頁(yè)、或者外部鏈接等。
  5.自定義頁(yè)面中如果寫(xiě)有重復的內容,可以選擇“復制全部?jì)热荨被颉皠h除所有內容”,如果選擇刪除掉,需要先點(diǎn)擊刪除再看清內容。tips:1.web端查看;2.微信端收到消息后,我們可以打開(kāi)微信登錄帳號,然后點(diǎn)擊上圖中的querylist,查看微信公眾號文章排行榜的鏈接。
  這些平臺都只能看到這個(gè)賬號發(fā)的文章,最多能看到這個(gè)帳號所有的文章。你還可以在推薦的目錄里面找到你需要的關(guān)鍵詞。
  微博大v寫(xiě)文章,靠的就是,標題以及文章里的軟廣。特別是文章標題,如果你有一個(gè)頭銜(作者/發(fā)布者),那么恭喜你,看到大v文章的概率非常大。這就是影響渠道,也影響方法的最根本因素。其他的,看再多的內容也沒(méi)有特別大的幫助。因為大v的文章是社會(huì )化,不是自媒體。自媒體,發(fā)布的內容大多是原創(chuàng )內容,一般都有看收益。
  一般是付費訂閱內容。既然是交易,就會(huì )有一個(gè)硬性的條件,內容質(zhì)量或者粉絲數,達不到標準,再大的粉絲都沒(méi)有用。而關(guān)注微信號,并不是通過(guò)推送的形式,微信號是通過(guò)按鈕來(lái)展示內容。微信的推送形式,方式比較多,包括轉發(fā)文章,點(diǎn)贊文章,收藏文章,贊賞文章,通知自己有文章可閱讀,推送文章,后臺接收文章閱讀數據。所以,微信號能推送的內容非常多,但是不能多且快的推送,依然是事倍功半。
  回過(guò)頭來(lái)說(shuō),我們開(kāi)放多頭銜,多頭銜基本上就是訂閱源的一個(gè)狀態(tài),比如你關(guān)注了高考幫,那么你可以自己選擇個(gè)別微信號或者微信公眾號,進(jìn)行關(guān)注,但是只能看到你關(guān)注的自己關(guān)注的微信號的內容。但是并不代表你可以隨意的取消關(guān)注。我們公司有自己發(fā)的小說(shuō),微信號的公眾號,大家隨意關(guān)注了就好。這是不允許的。只要你關(guān)注的是官方的,比如每日一刊,每日一更,每日一談等,那么這些號就是完全公平的對外發(fā)布的內容,這個(gè)對于你我來(lái)說(shuō),其實(shí)只是時(shí)間問(wèn)題。
  比如每日一刊,那么你想當面的咨詢(xún),或者有問(wèn)題要咨詢(xún)一下,直接打他們的電話(huà)吧。這是很正常的。再比如說(shuō)每日一談的網(wǎng)站,很多粉絲通過(guò)搜索“一談”這兩個(gè)字,還是能搜索到很多有用的信息的。只是也不能太頻繁的取消關(guān)注,每周三到四次這樣就比較好。再比如說(shuō)喜馬拉雅等的電臺,其實(shí)也是可以多一點(diǎn)取。 查看全部

  querylist采集微信公眾號文章(【querylist采集】微信公眾號文章排行榜(一))
  querylist采集微信公眾號文章排行榜tips:1.查看微信公眾號文章排行榜2.查看文章鏈接,以及未讀文章所在的列表。3.查看可選擇的自定義菜單,一篇文章有多個(gè)自定義菜單的話(huà),菜單是:投票、鏈接、二維碼、新聞、文章標題等。4.頁(yè)面上一個(gè)自定義菜單可添加多個(gè)自定義頁(yè)面,自定義頁(yè)面可以是專(zhuān)欄頁(yè)面、文章列表頁(yè)、或者外部鏈接等。
  5.自定義頁(yè)面中如果寫(xiě)有重復的內容,可以選擇“復制全部?jì)热荨被颉皠h除所有內容”,如果選擇刪除掉,需要先點(diǎn)擊刪除再看清內容。tips:1.web端查看;2.微信端收到消息后,我們可以打開(kāi)微信登錄帳號,然后點(diǎn)擊上圖中的querylist,查看微信公眾號文章排行榜的鏈接。
  這些平臺都只能看到這個(gè)賬號發(fā)的文章,最多能看到這個(gè)帳號所有的文章。你還可以在推薦的目錄里面找到你需要的關(guān)鍵詞。
  微博大v寫(xiě)文章,靠的就是,標題以及文章里的軟廣。特別是文章標題,如果你有一個(gè)頭銜(作者/發(fā)布者),那么恭喜你,看到大v文章的概率非常大。這就是影響渠道,也影響方法的最根本因素。其他的,看再多的內容也沒(méi)有特別大的幫助。因為大v的文章是社會(huì )化,不是自媒體。自媒體,發(fā)布的內容大多是原創(chuàng )內容,一般都有看收益。
  一般是付費訂閱內容。既然是交易,就會(huì )有一個(gè)硬性的條件,內容質(zhì)量或者粉絲數,達不到標準,再大的粉絲都沒(méi)有用。而關(guān)注微信號,并不是通過(guò)推送的形式,微信號是通過(guò)按鈕來(lái)展示內容。微信的推送形式,方式比較多,包括轉發(fā)文章,點(diǎn)贊文章,收藏文章,贊賞文章,通知自己有文章可閱讀,推送文章,后臺接收文章閱讀數據。所以,微信號能推送的內容非常多,但是不能多且快的推送,依然是事倍功半。
  回過(guò)頭來(lái)說(shuō),我們開(kāi)放多頭銜,多頭銜基本上就是訂閱源的一個(gè)狀態(tài),比如你關(guān)注了高考幫,那么你可以自己選擇個(gè)別微信號或者微信公眾號,進(jìn)行關(guān)注,但是只能看到你關(guān)注的自己關(guān)注的微信號的內容。但是并不代表你可以隨意的取消關(guān)注。我們公司有自己發(fā)的小說(shuō),微信號的公眾號,大家隨意關(guān)注了就好。這是不允許的。只要你關(guān)注的是官方的,比如每日一刊,每日一更,每日一談等,那么這些號就是完全公平的對外發(fā)布的內容,這個(gè)對于你我來(lái)說(shuō),其實(shí)只是時(shí)間問(wèn)題。
  比如每日一刊,那么你想當面的咨詢(xún),或者有問(wèn)題要咨詢(xún)一下,直接打他們的電話(huà)吧。這是很正常的。再比如說(shuō)每日一談的網(wǎng)站,很多粉絲通過(guò)搜索“一談”這兩個(gè)字,還是能搜索到很多有用的信息的。只是也不能太頻繁的取消關(guān)注,每周三到四次這樣就比較好。再比如說(shuō)喜馬拉雅等的電臺,其實(shí)也是可以多一點(diǎn)取。

querylist采集微信公眾號文章(微信文章和采集網(wǎng)站內容一樣的方法獲取到歷史消息頁(yè))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 292 次瀏覽 ? 2022-03-07 08:18 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信文章和采集網(wǎng)站內容一樣的方法獲取到歷史消息頁(yè))
  本文章將詳細講解采集微信公眾號歷史消息頁(yè)的使用方法。我覺(jué)得很有用,所以分享給大家作為參考。希望你看完這篇文章以后可以打賞。
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。所以我們需要使用anyproxy來(lái)獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  __biz = MjM5NDAwMTA2MA ==&UIN = NzM4MTk1ODgx&鍵= bf9387c4d02682e186a298a18276d8e0555e3ab51d81ca46de339e6082eb767343bef610edd80c9e1bfda66c2b62751511f7cc091a33a029709e94f0d1604e11220fc099a27b2e2d29db75cc0849d4bf&的devicetype =機器人-17&版本= 26031c34&LANG = zh_CN的&NETTYPE = WIFI&ascene = 3&pass_ticket = Iox5ZdpRhrSxGYEeopVJwTBP7kZj51GYyEL24AT5Zyx%2BBoEMdPDBtOun1F%2F9ENSz&wx_header = 1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,還可以編寫(xiě)一個(gè)程序,添加key和pass_ticket的鏈接地址,然后通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
??"list":?[
????{
??????"app_msg_ext_info":?{
????????"author":?"",
????????"content":?"",
????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????"copyright_stat":?100,
????????"cover":?"http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
????????"digest":?"擦亮雙眼,遠離謠言。",
????????"fileid":?505283695,
????????"is_multi":?1,
????????"multi_app_msg_item_list":?[
??????????{
????????????"author":?"",
????????????"content":?"",
????????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????????"copyright_stat":?100,
????????????"cover":?"http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
????????????"digest":?"12月28日,廣州亞運城綜合體育館,內附購票入口~",
????????????"fileid":?0,
????????????"source_url":?"http://wechat.show.wepiao.com/ ... ot%3B,
????????????"title":?"2017微信公開(kāi)課Pro版即將召開(kāi)"
??????????},
?????????...//循環(huán)被省略
????????],
????????"source_url":?"",
????????"subtype":?9,
????????"title":?"謠言熱榜?|?十一月朋友圈十大謠言"
??????},
??????"comm_msg_info":?{
????????"content":?"",
????????"datetime":?1480933315,
????????"fakeid":?"3093134871",
????????"id":?1000000010,
????????"status":?2,
????????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
??????}
????},
???...//循環(huán)被省略
??]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list":?[?//最外層的鍵名;只出現一次,所有內容都被它包含。
??{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
????"app_msg_ext_info":{//圖文消息的擴展信息
??????"content_url":?"圖文消息的鏈接地址",
??????"cover":?"封面圖片",
??????"digest":?"摘要",
??????"is_multi":?"是否多圖文,值為1和0",
??????"multi_app_msg_item_list":?[//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
????????{
??????????"content_url":?"圖文消息的鏈接地址",
??????????"cover":?"封面圖片",
??????????"digest":?""摘要"",
??????????"source_url":?"閱讀原文的地址",
??????????"title":?"子內容標題"
????????},
????????...//循環(huán)被省略
??????],
??????"source_url":?"閱讀原文的地址",
??????"title":?"頭條標題"
????},
????"comm_msg_info":{//圖文消息的基本信息
??????"datetime":?&#39;發(fā)布時(shí)間,值為unix時(shí)間戳&#39;,
??????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
????}
??},
??...//循環(huán)被省略
]
  這里還要提一點(diǎn),如果你想獲取更舊的歷史消息的內容,你需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  《如何采集微信公眾號歷史新聞頁(yè)面》文章文章分享到這里。希望以上內容能夠對大家有所幫助,讓大家學(xué)習到更多的知識。如果你覺(jué)得文章不錯,請分享給更多人看到。 查看全部

  querylist采集微信公眾號文章(微信文章和采集網(wǎng)站內容一樣的方法獲取到歷史消息頁(yè))
  本文章將詳細講解采集微信公眾號歷史消息頁(yè)的使用方法。我覺(jué)得很有用,所以分享給大家作為參考。希望你看完這篇文章以后可以打賞。
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。所以我們需要使用anyproxy來(lái)獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  __biz = MjM5NDAwMTA2MA ==&UIN = NzM4MTk1ODgx&鍵= bf9387c4d02682e186a298a18276d8e0555e3ab51d81ca46de339e6082eb767343bef610edd80c9e1bfda66c2b62751511f7cc091a33a029709e94f0d1604e11220fc099a27b2e2d29db75cc0849d4bf&的devicetype =機器人-17&版本= 26031c34&LANG = zh_CN的&NETTYPE = WIFI&ascene = 3&pass_ticket = Iox5ZdpRhrSxGYEeopVJwTBP7kZj51GYyEL24AT5Zyx%2BBoEMdPDBtOun1F%2F9ENSz&wx_header = 1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,還可以編寫(xiě)一個(gè)程序,添加key和pass_ticket的鏈接地址,然后通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
??"list":?[
????{
??????"app_msg_ext_info":?{
????????"author":?"",
????????"content":?"",
????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????"copyright_stat":?100,
????????"cover":?"http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
????????"digest":?"擦亮雙眼,遠離謠言。",
????????"fileid":?505283695,
????????"is_multi":?1,
????????"multi_app_msg_item_list":?[
??????????{
????????????"author":?"",
????????????"content":?"",
????????????"content_url":?"http://mp.weixin.qq.com/s%3F__ ... ot%3B,
????????????"copyright_stat":?100,
????????????"cover":?"http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
????????????"digest":?"12月28日,廣州亞運城綜合體育館,內附購票入口~",
????????????"fileid":?0,
????????????"source_url":?"http://wechat.show.wepiao.com/ ... ot%3B,
????????????"title":?"2017微信公開(kāi)課Pro版即將召開(kāi)"
??????????},
?????????...//循環(huán)被省略
????????],
????????"source_url":?"",
????????"subtype":?9,
????????"title":?"謠言熱榜?|?十一月朋友圈十大謠言"
??????},
??????"comm_msg_info":?{
????????"content":?"",
????????"datetime":?1480933315,
????????"fakeid":?"3093134871",
????????"id":?1000000010,
????????"status":?2,
????????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
??????}
????},
???...//循環(huán)被省略
??]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list":?[?//最外層的鍵名;只出現一次,所有內容都被它包含。
??{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
????"app_msg_ext_info":{//圖文消息的擴展信息
??????"content_url":?"圖文消息的鏈接地址",
??????"cover":?"封面圖片",
??????"digest":?"摘要",
??????"is_multi":?"是否多圖文,值為1和0",
??????"multi_app_msg_item_list":?[//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
????????{
??????????"content_url":?"圖文消息的鏈接地址",
??????????"cover":?"封面圖片",
??????????"digest":?""摘要"",
??????????"source_url":?"閱讀原文的地址",
??????????"title":?"子內容標題"
????????},
????????...//循環(huán)被省略
??????],
??????"source_url":?"閱讀原文的地址",
??????"title":?"頭條標題"
????},
????"comm_msg_info":{//圖文消息的基本信息
??????"datetime":?&#39;發(fā)布時(shí)間,值為unix時(shí)間戳&#39;,
??????"type":?49?//類(lèi)型為49的時(shí)候是圖文消息
????}
??},
??...//循環(huán)被省略
]
  這里還要提一點(diǎn),如果你想獲取更舊的歷史消息的內容,你需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  《如何采集微信公眾號歷史新聞頁(yè)面》文章文章分享到這里。希望以上內容能夠對大家有所幫助,讓大家學(xué)習到更多的知識。如果你覺(jué)得文章不錯,請分享給更多人看到。

querylist采集微信公眾號文章(研發(fā)的移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集系統)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 124 次瀏覽 ? 2022-03-06 10:22 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(研發(fā)的移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集系統)
  微信公眾號信息采集微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由A系統專(zhuān)注開(kāi)發(fā)關(guān)于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘 產(chǎn)品介紹:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā)并專(zhuān)注于搜索的系統、監控、采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統是公司研發(fā)的專(zhuān)注于微信公眾號搜索、監控、采集分類(lèi)篩選的系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。具有公眾號覆蓋全面、公眾號信息快速采集、多維度分類(lèi)篩選等特點(diǎn)。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘公司簡(jiǎn)介:微信公眾號信息采集微信公眾號信息采集 產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是由微信公眾號開(kāi)發(fā)并專(zhuān)注于微信公眾號搜索、監控的系統, 采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統由公司自主研發(fā),是國內權威的大數據爬蟲(chóng)系統、互聯(lián)網(wǎng)商業(yè)智能挖掘系統、輿情系統軟件研發(fā)機構。公司擁有多年互聯(lián)網(wǎng)數據挖掘和信息處理經(jīng)驗,在互聯(lián)網(wǎng)信息捕捉、自然語(yǔ)言分析、數據分析等方面擁有深厚的技術(shù)背景。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼淼凳猴春歲走開(kāi)內燈升幣法詹賊烈焰級跑謝子多勇皮難怕獄熱恒聰到墨淵螳螂苗長(cháng)城溶橙團隊包括各領(lǐng)域的專(zhuān)業(yè)人士和互聯(lián)網(wǎng)技術(shù)專(zhuān)家,包括睿智的市場(chǎng)策劃團隊、高素質(zhì)的測試團隊、專(zhuān)業(yè)的研究團隊,以及經(jīng)驗豐富的方案和客服人員。數騰軟件自成立以來(lái),一直致力于輿情監測相關(guān)技術(shù)的研發(fā)和創(chuàng )新,為政府、企業(yè)、機構和各種組織。計劃。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),辟幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,化,昊善煉鞘 主要功用:
  該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ &gt;關(guān)鍵詞管理:創(chuàng )建一個(gè)關(guān)鍵詞關(guān)注,系統會(huì )自動(dòng)采集和監控收錄該關(guān)鍵詞的微信公眾號。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程即時(shí)崩潰3、文章查詢(xún):文章內容檢索。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),辟財,舉法,賊炎,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,融,昊善煉鞘平臺包括:調度監控引擎、UIMA流計算平臺、分布式計算平臺、發(fā)布工具和建模工具。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。系統在移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的數據分析:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集@ &gt;(微爬蟲(chóng))系統是公司自主研發(fā)的系統,專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快,和即時(shí)線(xiàn)程崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ &gt;非結構化數據抽?。壕W(wǎng)頁(yè)上的大部分信息都是非結構化的文本數據,可以通過(guò)獨有的數據抽取技術(shù)將其轉化為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ &gt; 互聯(lián)網(wǎng)網(wǎng)頁(yè)智能清洗:普通網(wǎng)頁(yè)70%以上是雜質(zhì)信息。通過(guò)適用于網(wǎng)頁(yè)的智能清洗技術(shù),我們可以獲得準確的標題、文字等關(guān)鍵內容,杜絕各類(lèi)網(wǎng)頁(yè)廣告和無(wú)關(guān)信息。信息以提高閱讀和分析的準確性。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快捷3、 網(wǎng)頁(yè)模式挖掘:對于相同類(lèi)型的網(wǎng)頁(yè),系統可以自動(dòng)發(fā)現其模式,并根據模式進(jìn)行清洗和信息提取。我們擁有完全無(wú)監督的機器學(xué)習算法,極大地提高了客戶(hù)的生產(chǎn)力和便利性。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳、猴子純穗行走、開(kāi)掛、升幣法、賊焰級、潤斜子、多勇品南、恐獄、恒聰、去墨園、蛀蟲(chóng)、妙腸、橘融4、指紋去重轉載分析:每個(gè) A 文檔都有其特征,我們將其特征編碼為語(yǔ)義指紋并存儲在系統中;通過(guò)比對指紋,我們可以獲得重復信息并跟蹤同一文章的轉載。對于更復雜的應用場(chǎng)景,也支持基于文本相似度的比較算??法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘5、@ &gt;文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。
  我們提供基于海量文本數據庫的文本相關(guān)性挖掘算法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),誅錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙、融、昊擅長(cháng)煉鞘分布式云爬蟲(chóng)技術(shù):微信公眾號資訊采集微信公眾號資訊采集產(chǎn)品介紹:微信公眾號資訊采集(微爬蟲(chóng))系統,由專(zhuān)注于微信開(kāi)發(fā)的公眾號搜索、監控、采集、分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),斥錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙,融,浩擅長(cháng)煉鞘樹(shù)騰分布式云爬蟲(chóng)系統有效、高效、可擴展、可控。主要技術(shù)路線(xiàn)有:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是本公司自主研發(fā)的系統專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ &gt;爬蟲(chóng)系統基于樹(shù)騰分布式流數據計算平臺實(shí)現,執行采集任務(wù),最大化利用資源,平衡數據利用率。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集 (微爬蟲(chóng))系統是微信公眾號開(kāi)發(fā)的,專(zhuān)注于微信公眾號的搜索和監控,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ &gt;部分網(wǎng)站在采集頻繁采集時(shí)可能會(huì )被對方IP屏蔽。針對這種情況,使用了多條adsl線(xiàn)路,并采用adsl pool技術(shù)動(dòng)態(tài)切換爬蟲(chóng)IP,滿(mǎn)足破解封鎖的需要。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨淵,妙場(chǎng),橙,融,昊善煉鞘3、@ &gt;智能抽取功能通過(guò)模板技術(shù)實(shí)現,模板中定義數據抽取規則,數據按要求格式化存儲。使用xpath選擇器、jsoup選擇器、正則表達式等提取采集信息中涉及的數據。如果 網(wǎng)站 的模板改變了,處理過(guò)程中會(huì )向爬蟲(chóng)運維平臺發(fā)送錯誤信息,運維人員監測到錯誤信息后可以重新配置模板。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),罵錢(qián),舉法,賊火,潤邪子,多用品難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘4、當爬取資源不足時(shí),可以隨時(shí)向樹(shù)騰云爬蟲(chóng)系統添加機器,不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。 查看全部

  querylist采集微信公眾號文章(研發(fā)的移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集系統)
  微信公眾號信息采集微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由A系統專(zhuān)注開(kāi)發(fā)關(guān)于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘 產(chǎn)品介紹:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā)并專(zhuān)注于搜索的系統、監控、采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統是公司研發(fā)的專(zhuān)注于微信公眾號搜索、監控、采集分類(lèi)篩選的系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。具有公眾號覆蓋全面、公眾號信息快速采集、多維度分類(lèi)篩選等特點(diǎn)。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊焰,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘公司簡(jiǎn)介:微信公眾號信息采集微信公眾號信息采集 產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是由微信公眾號開(kāi)發(fā)并專(zhuān)注于微信公眾號搜索、監控的系統, 采集 和排序。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘微信公眾號信息 采集 (微爬蟲(chóng))系統由公司自主研發(fā),是國內權威的大數據爬蟲(chóng)系統、互聯(lián)網(wǎng)商業(yè)智能挖掘系統、輿情系統軟件研發(fā)機構。公司擁有多年互聯(lián)網(wǎng)數據挖掘和信息處理經(jīng)驗,在互聯(lián)網(wǎng)信息捕捉、自然語(yǔ)言分析、數據分析等方面擁有深厚的技術(shù)背景。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼淼凳猴春歲走開(kāi)內燈升幣法詹賊烈焰級跑謝子多勇皮難怕獄熱恒聰到墨淵螳螂苗長(cháng)城溶橙團隊包括各領(lǐng)域的專(zhuān)業(yè)人士和互聯(lián)網(wǎng)技術(shù)專(zhuān)家,包括睿智的市場(chǎng)策劃團隊、高素質(zhì)的測試團隊、專(zhuān)業(yè)的研究團隊,以及經(jīng)驗豐富的方案和客服人員。數騰軟件自成立以來(lái),一直致力于輿情監測相關(guān)技術(shù)的研發(fā)和創(chuàng )新,為政府、企業(yè)、機構和各種組織。計劃。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),辟幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,化,昊善煉鞘 主要功用:
  該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ &gt;關(guān)鍵詞管理:創(chuàng )建一個(gè)關(guān)鍵詞關(guān)注,系統會(huì )自動(dòng)采集和監控收錄該關(guān)鍵詞的微信公眾號。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程即時(shí)崩潰3、文章查詢(xún):文章內容檢索。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。@采集和移動(dòng)互聯(lián)網(wǎng)領(lǐng)域的信息監控。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊擅長(cháng)煉鞘 大數據支撐平臺:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,是微信公眾號開(kāi)發(fā)的一個(gè)搜索系統,監控,采集,以及數字的排序和篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),辟財,舉法,賊炎,潤邪子,多用皮南,怕牢,恒聰,去墨淵,妙腸,橙,融,昊善煉鞘平臺包括:調度監控引擎、UIMA流計算平臺、分布式計算平臺、發(fā)布工具和建模工具。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于微信公眾號采集的搜索和監控,以及分類(lèi)篩選系統。系統在移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的數據分析:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集@ &gt;(微爬蟲(chóng))系統是公司自主研發(fā)的系統,專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快,和即時(shí)線(xiàn)程崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ &gt;非結構化數據抽?。壕W(wǎng)頁(yè)上的大部分信息都是非結構化的文本數據,可以通過(guò)獨有的數據抽取技術(shù)將其轉化為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。通過(guò)獨特的數據提取技術(shù),可以將其轉換為結構化的可索引結構;使用文本分析算法。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ &gt; 互聯(lián)網(wǎng)網(wǎng)頁(yè)智能清洗:普通網(wǎng)頁(yè)70%以上是雜質(zhì)信息。通過(guò)適用于網(wǎng)頁(yè)的智能清洗技術(shù),我們可以獲得準確的標題、文字等關(guān)鍵內容,杜絕各類(lèi)網(wǎng)頁(yè)廣告和無(wú)關(guān)信息。信息以提高閱讀和分析的準確性。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快捷3、 網(wǎng)頁(yè)模式挖掘:對于相同類(lèi)型的網(wǎng)頁(yè),系統可以自動(dòng)發(fā)現其模式,并根據模式進(jìn)行清洗和信息提取。我們擁有完全無(wú)監督的機器學(xué)習算法,極大地提高了客戶(hù)的生產(chǎn)力和便利性。
  微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳、猴子純穗行走、開(kāi)掛、升幣法、賊焰級、潤斜子、多勇品南、恐獄、恒聰、去墨園、蛀蟲(chóng)、妙腸、橘融4、指紋去重轉載分析:每個(gè) A 文檔都有其特征,我們將其特征編碼為語(yǔ)義指紋并存儲在系統中;通過(guò)比對指紋,我們可以獲得重復信息并跟蹤同一文章的轉載。對于更復雜的應用場(chǎng)景,也支持基于文本相似度的比較算??法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘5、@ &gt;文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。去墨園、妙場(chǎng)、橙、融、昊擅長(cháng)煉鞘5、@>文本相關(guān)性挖掘:在內容發(fā)布網(wǎng)站、網(wǎng)絡(luò )廣告、文檔庫、案例庫等應用中,有時(shí)需要提供與當前內容相關(guān)的其他內容。相關(guān)性挖掘。
  我們提供基于海量文本數據庫的文本相關(guān)性挖掘算法。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),誅錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙、融、昊擅長(cháng)煉鞘分布式云爬蟲(chóng)技術(shù):微信公眾號資訊采集微信公眾號資訊采集產(chǎn)品介紹:微信公眾號資訊采集(微爬蟲(chóng))系統,由專(zhuān)注于微信開(kāi)發(fā)的公眾號搜索、監控、采集、分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),斥錢(qián),舉法,賊火,潤邪子,多勇品難,怕牢,橫從,去墨園,妙場(chǎng),橙,融,浩擅長(cháng)煉鞘樹(shù)騰分布式云爬蟲(chóng)系統有效、高效、可擴展、可控。主要技術(shù)路線(xiàn)有:微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統是本公司自主研發(fā)的系統專(zhuān)注于微信公眾號的搜索、監控、采集和分類(lèi)篩選。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多用皮南,怕牢,恒聰,去墨園,妙場(chǎng),橘子,融,昊善煉鞘1、@ &gt;爬蟲(chóng)系統基于樹(shù)騰分布式流數據計算平臺實(shí)現,執行采集任務(wù),最大化利用資源,平衡數據利用率。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集 (微爬蟲(chóng))系統是微信公眾號開(kāi)發(fā)的,專(zhuān)注于微信公眾號的搜索和監控,采集,分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊善煉鞘2、@ &gt;部分網(wǎng)站在采集頻繁采集時(shí)可能會(huì )被對方IP屏蔽。針對這種情況,使用了多條adsl線(xiàn)路,并采用adsl pool技術(shù)動(dòng)態(tài)切換爬蟲(chóng)IP,滿(mǎn)足破解封鎖的需要。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。
  該系統是移動(dòng)互聯(lián)網(wǎng)領(lǐng)域信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳猴春穗走開(kāi),開(kāi)罵幣,舉法,賊火,潤邪子,多勇皮難,怕牢,恒聰,去墨淵,妙場(chǎng),橙,融,昊善煉鞘3、@ &gt;智能抽取功能通過(guò)模板技術(shù)實(shí)現,模板中定義數據抽取規則,數據按要求格式化存儲。使用xpath選擇器、jsoup選擇器、正則表達式等提取采集信息中涉及的數據。如果 網(wǎng)站 的模板改變了,處理過(guò)程中會(huì )向爬蟲(chóng)運維平臺發(fā)送錯誤信息,運維人員監測到錯誤信息后可以重新配置模板。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由采集開(kāi)發(fā),分類(lèi)篩選系統。該系統是移動(dòng)互聯(lián)網(wǎng)信息采集和信息監控領(lǐng)域的全新產(chǎn)品。公眾號覆蓋全面,公眾號信息采集快速,線(xiàn)程瞬間崩潰。鬼廟凳子猴春穗走開(kāi),罵錢(qián),舉法,賊火,潤邪子,多用品難,怕牢,恒聰,去墨園,妙場(chǎng),橙,融,昊擅長(cháng)煉鞘4、當爬取資源不足時(shí),可以隨時(shí)向樹(shù)騰云爬蟲(chóng)系統添加機器,不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。您可以隨時(shí)將機器添加到樹(shù)騰云爬蟲(chóng)系統中,而不影響當前系統運行。微信公眾號信息采集微信公眾號信息采集產(chǎn)品介紹:微信公眾號信息采集(微爬蟲(chóng))系統,由微信公眾號開(kāi)發(fā),專(zhuān)注于搜索和監控微信公眾號,采集,分類(lèi)篩選系統。

querylist采集微信公眾號文章(微信公眾號數據的采集有兩個(gè)途徑,你知道嗎?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 214 次瀏覽 ? 2022-03-03 06:17 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號數據的采集有兩個(gè)途徑,你知道嗎?)
  微信公眾號數據采集有兩種方式:
  
  1、搜狗微信:因為搜狗和微信合作,所以可以用搜狗微信采集;這個(gè)公眾號只能采集最新的10個(gè),要獲取歷史文章太難了。并注意爬行的頻率。如果頻率高,就會(huì )有驗證碼。本平臺只能進(jìn)行少量數據的采集,不推薦。
  2.微信公眾號平臺:這個(gè)微信公眾號平臺,你必須先申請一個(gè)公眾號(因為微信最近開(kāi)放了在公眾號中插入其他公眾號鏈接的功能,這樣可以存儲數據采集) ,然后進(jìn)入創(chuàng )作管理-圖文素材-列表視圖-新建創(chuàng )作-新建圖文-點(diǎn)擊超鏈接進(jìn)行爬蟲(chóng)操作。這樣可以爬取歷史文章,推薦的方式。(但需要注意的是,如果頻率太快,或者爬的太多,賬號會(huì )被封,24小時(shí),不是ip,而是賬號。目前沒(méi)有什么好辦法,我個(gè)人使用隨機緩存time ,模擬人們?yōu)g覽的方式,為結果犧牲時(shí)間。)
  主要基于第二種方式(微信公眾號平臺):
  1、首先使用selenium模擬登錄微信公眾號,獲取對應的cookie并保存。
  2.獲取cookie和request請求url后,會(huì )跳轉到個(gè)人主頁(yè)(因為cookie)。這時(shí)候url有一個(gè)token,每個(gè)請求都是不同的token。使用正則表達式獲取它。
  3.構造數據包,模擬get請求,返回數據(這個(gè)可以打開(kāi)F12看到)。
  4. 獲取數據并分析數據。
  這是基于微信公眾號平臺的data采集思路。網(wǎng)上有很多具體的代碼。我不會(huì )在這里發(fā)布我的。, 解析數據的步驟,代碼很簡(jiǎn)單,大家可以按照自己的想法嘗試寫(xiě)(如果寫(xiě)不出來(lái)代碼請私信)。
  注意:惡意爬蟲(chóng)是一種危險行為,切記不要惡意爬取某個(gè)網(wǎng)站,遵守互聯(lián)網(wǎng)爬蟲(chóng)規范,簡(jiǎn)單學(xué)習即可。
  這篇文章的鏈接: 查看全部

  querylist采集微信公眾號文章(微信公眾號數據的采集有兩個(gè)途徑,你知道嗎?)
  微信公眾號數據采集有兩種方式:
  
  1、搜狗微信:因為搜狗和微信合作,所以可以用搜狗微信采集;這個(gè)公眾號只能采集最新的10個(gè),要獲取歷史文章太難了。并注意爬行的頻率。如果頻率高,就會(huì )有驗證碼。本平臺只能進(jìn)行少量數據的采集,不推薦。
  2.微信公眾號平臺:這個(gè)微信公眾號平臺,你必須先申請一個(gè)公眾號(因為微信最近開(kāi)放了在公眾號中插入其他公眾號鏈接的功能,這樣可以存儲數據采集) ,然后進(jìn)入創(chuàng )作管理-圖文素材-列表視圖-新建創(chuàng )作-新建圖文-點(diǎn)擊超鏈接進(jìn)行爬蟲(chóng)操作。這樣可以爬取歷史文章,推薦的方式。(但需要注意的是,如果頻率太快,或者爬的太多,賬號會(huì )被封,24小時(shí),不是ip,而是賬號。目前沒(méi)有什么好辦法,我個(gè)人使用隨機緩存time ,模擬人們?yōu)g覽的方式,為結果犧牲時(shí)間。)
  主要基于第二種方式(微信公眾號平臺):
  1、首先使用selenium模擬登錄微信公眾號,獲取對應的cookie并保存。
  2.獲取cookie和request請求url后,會(huì )跳轉到個(gè)人主頁(yè)(因為cookie)。這時(shí)候url有一個(gè)token,每個(gè)請求都是不同的token。使用正則表達式獲取它。
  3.構造數據包,模擬get請求,返回數據(這個(gè)可以打開(kāi)F12看到)。
  4. 獲取數據并分析數據。
  這是基于微信公眾號平臺的data采集思路。網(wǎng)上有很多具體的代碼。我不會(huì )在這里發(fā)布我的。, 解析數據的步驟,代碼很簡(jiǎn)單,大家可以按照自己的想法嘗試寫(xiě)(如果寫(xiě)不出來(lái)代碼請私信)。
  注意:惡意爬蟲(chóng)是一種危險行為,切記不要惡意爬取某個(gè)網(wǎng)站,遵守互聯(lián)網(wǎng)爬蟲(chóng)規范,簡(jiǎn)單學(xué)習即可。
  這篇文章的鏈接:

querylist采集微信公眾號文章(微信公眾號文章的GET及方法(二)-)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-03-03 03:13 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號文章的GET及方法(二)-)
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
   def weChat_login(user, password): post = {} browser = webdriver.Chrome() browser.get('https://mp.weixin.qq.com/') sleep(3) browser.delete_all_cookies() sleep(2) # 點(diǎn)擊切換到賬號密碼輸入 browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click() sleep(2) # 模擬用戶(hù)點(diǎn)擊 input_user = browser.find_element_by_xpath("//input[@name='account']") input_user.send_keys(user) input_password = browser.find_element_by_xpath("//input[@name='password']") input_password.send_keys(password) sleep(2) # 點(diǎn)擊登錄 browser.find_element_by_xpath("//a[@class='btn_login']").click() sleep(2) # 微信登錄驗證 print('請掃描二維碼') sleep(20) # 刷新當前網(wǎng)頁(yè) browser.get('https://mp.weixin.qq.com/') sleep(5) # 獲取當前網(wǎng)頁(yè)鏈接 url = browser.current_url # 獲取當前cookie cookies = browser.get_cookies() for item in cookies: post[item['name']] = item['value'] # 轉換為字符串 cookie_str = json.dumps(post) # 存儲到本地 with open('cookie.txt', 'w+', encoding='utf-8') as f: f.write(cookie_str) print('cookie保存到本地成功') # 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token paramList = url.strip().split('?')[1].split('&') # 定義一個(gè)字典存儲數據 paramdict = {} for item in paramList: paramdict[item.split('=')[0]] = item.split('=')[1] # 返回token return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com' headers = { 'HOST': 'mp.weixin.qq.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63' } with open('cookie.txt', 'r', encoding='utf-8') as f: cookie = f.read() cookies = json.loads(cookie) resp = requests.get(url=url, headers=headers, cookies=cookies) search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?' params = { 'action': 'search_biz', 'begin': '0', 'count': '5', 'query': '搜索的公眾號名稱(chēng)', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
   lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
   fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?' params_data = { 'action': 'list_ex', 'begin': '0', 'count': '5', 'fakeid': fakeid, 'type': '9', 'query': '', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章的爬取內容請搜索本站上一篇文章或繼續瀏覽以下相關(guān)文章希望大家多多支持本站未來(lái)! 查看全部

  querylist采集微信公眾號文章(微信公眾號文章的GET及方法(二)-)
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
   def weChat_login(user, password): post = {} browser = webdriver.Chrome() browser.get('https://mp.weixin.qq.com/') sleep(3) browser.delete_all_cookies() sleep(2) # 點(diǎn)擊切換到賬號密碼輸入 browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click() sleep(2) # 模擬用戶(hù)點(diǎn)擊 input_user = browser.find_element_by_xpath("//input[@name='account']") input_user.send_keys(user) input_password = browser.find_element_by_xpath("//input[@name='password']") input_password.send_keys(password) sleep(2) # 點(diǎn)擊登錄 browser.find_element_by_xpath("//a[@class='btn_login']").click() sleep(2) # 微信登錄驗證 print('請掃描二維碼') sleep(20) # 刷新當前網(wǎng)頁(yè) browser.get('https://mp.weixin.qq.com/') sleep(5) # 獲取當前網(wǎng)頁(yè)鏈接 url = browser.current_url # 獲取當前cookie cookies = browser.get_cookies() for item in cookies: post[item['name']] = item['value'] # 轉換為字符串 cookie_str = json.dumps(post) # 存儲到本地 with open('cookie.txt', 'w+', encoding='utf-8') as f: f.write(cookie_str) print('cookie保存到本地成功') # 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token paramList = url.strip().split('?')[1].split('&') # 定義一個(gè)字典存儲數據 paramdict = {} for item in paramList: paramdict[item.split('=')[0]] = item.split('=')[1] # 返回token return paramdict['token']
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com' headers = { 'HOST': 'mp.weixin.qq.com', 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63' } with open('cookie.txt', 'r', encoding='utf-8') as f: cookie = f.read() cookies = json.loads(cookie) resp = requests.get(url=url, headers=headers, cookies=cookies) search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?' params = { 'action': 'search_biz', 'begin': '0', 'count': '5', 'query': '搜索的公眾號名稱(chēng)', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
   lists = search_resp.json().get('list')[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
   fakeid = lists.get('fakeid')
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?' params_data = { 'action': 'list_ex', 'begin': '0', 'count': '5', 'fakeid': fakeid, 'type': '9', 'query': '', 'token': token, 'lang': 'zh_CN', 'f': 'json', 'ajax': '1' } appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。
  至此,這篇關(guān)于Python微信公眾號文章爬取示例代碼的文章文章就介紹到這里了。更多Python微信公眾號文章的爬取內容請搜索本站上一篇文章或繼續瀏覽以下相關(guān)文章希望大家多多支持本站未來(lái)!

querylist采集微信公眾號文章( 微信公眾號文章的GET及方法(二)-)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 153 次瀏覽 ? 2022-02-28 10:32 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
微信公眾號文章的GET及方法(二)-)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):<br />post = {}<br />browser = webdriver.Chrome()<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(3)<br />browser.delete_all_cookies()<br />sleep(2)<br /># 點(diǎn)擊切換到賬號密碼輸入<br />browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()<br />sleep(2)<br /># 模擬用戶(hù)點(diǎn)擊<br />input_user = browser.find_element_by_xpath("//input[@name='account']")<br />input_user.send_keys(user)<br />input_password = browser.find_element_by_xpath("//input[@name='password']")<br />input_password.send_keys(password)<br />sleep(2)<br /># 點(diǎn)擊登錄<br />browser.find_element_by_xpath("//a[@class='btn_login']").click()<br />sleep(2)<br /># 微信登錄驗證<br />print('請掃描二維碼')<br />sleep(20)<br /># 刷新當前網(wǎng)頁(yè)<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(5)<br /># 獲取當前網(wǎng)頁(yè)鏈接<br />url = browser.current_url<br /># 獲取當前cookie<br />cookies = browser.get_cookies()<br />for item in cookies:<br />post[item['name']] = item['value']<br /># 轉換為字符串<br />cookie_str = json.dumps(post)<br /># 存儲到本地<br />with open('cookie.txt', 'w+', encoding='utf-8') as f:<br />f.write(cookie_str)<br />print('cookie保存到本地成功')<br /># 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token<br />paramList = url.strip().split('?')[1].split('&')<br /># 定義一個(gè)字典存儲數據<br />paramdict = {}<br />for item in paramList:<br />paramdict[item.split('=')[0]] = item.split('=')[1]<br /># 返回token<br />return paramdict['token']<br />
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com'<br />headers = {<br />'HOST': 'mp.weixin.qq.com',<br />'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'<br /> }<br />with open('cookie.txt', 'r', encoding='utf-8') as f:<br />cookie = f.read()<br />cookies = json.loads(cookie)<br />resp = requests.get(url=url, headers=headers, cookies=cookies)<br />search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'<br />params = {<br />'action': 'search_biz',<br />'begin': '0',<br />'count': '5',<br />'query': '搜索的公眾號名稱(chēng)',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)<br />
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists = search_resp.json().get('list')[0]<br />
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid = lists.get('fakeid')<br />
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'<br />params_data = {<br />'action': 'list_ex',<br />'begin': '0',<br />'count': '5',<br />'fakeid': fakeid,<br />'type': '9',<br />'query': '',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)<br />
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置延遲時(shí)間,否則容易被封號,獲取不到返回的數據。 查看全部

  querylist采集微信公眾號文章(
微信公眾號文章的GET及方法(二)-)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。
  二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后可以通過(guò)網(wǎng)頁(yè)鏈接獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現
  第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):<br />post = {}<br />browser = webdriver.Chrome()<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(3)<br />browser.delete_all_cookies()<br />sleep(2)<br /># 點(diǎn)擊切換到賬號密碼輸入<br />browser.find_element_by_xpath("//a[@class='login__type__container__select-type']").click()<br />sleep(2)<br /># 模擬用戶(hù)點(diǎn)擊<br />input_user = browser.find_element_by_xpath("//input[@name='account']")<br />input_user.send_keys(user)<br />input_password = browser.find_element_by_xpath("//input[@name='password']")<br />input_password.send_keys(password)<br />sleep(2)<br /># 點(diǎn)擊登錄<br />browser.find_element_by_xpath("//a[@class='btn_login']").click()<br />sleep(2)<br /># 微信登錄驗證<br />print('請掃描二維碼')<br />sleep(20)<br /># 刷新當前網(wǎng)頁(yè)<br />browser.get('https://mp.weixin.qq.com/')<br />sleep(5)<br /># 獲取當前網(wǎng)頁(yè)鏈接<br />url = browser.current_url<br /># 獲取當前cookie<br />cookies = browser.get_cookies()<br />for item in cookies:<br />post[item['name']] = item['value']<br /># 轉換為字符串<br />cookie_str = json.dumps(post)<br /># 存儲到本地<br />with open('cookie.txt', 'w+', encoding='utf-8') as f:<br />f.write(cookie_str)<br />print('cookie保存到本地成功')<br /># 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token<br />paramList = url.strip().split('?')[1].split('&')<br /># 定義一個(gè)字典存儲數據<br />paramdict = {}<br />for item in paramList:<br />paramdict[item.split('=')[0]] = item.split('=')[1]<br /># 返回token<br />return paramdict['token']<br />
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第2步:
  1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
   url = 'https://mp.weixin.qq.com'<br />headers = {<br />'HOST': 'mp.weixin.qq.com',<br />'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63'<br /> }<br />with open('cookie.txt', 'r', encoding='utf-8') as f:<br />cookie = f.read()<br />cookies = json.loads(cookie)<br />resp = requests.get(url=url, headers=headers, cookies=cookies)<br />search_url = 'https://mp.weixin.qq.com/cgi-bin/searchbiz?'<br />params = {<br />'action': 'search_biz',<br />'begin': '0',<br />'count': '5',<br />'query': '搜索的公眾號名稱(chēng)',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)<br />
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists = search_resp.json().get('list')[0]<br />
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid = lists.get('fakeid')<br />
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
   appmsg_url = 'https://mp.weixin.qq.com/cgi-bin/appmsg?'<br />params_data = {<br />'action': 'list_ex',<br />'begin': '0',<br />'count': '5',<br />'fakeid': fakeid,<br />'type': '9',<br />'query': '',<br />'token': token,<br />'lang': 'zh_CN',<br />'f': 'json',<br />'ajax': '1'<br /> }<br />appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)<br />
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置延遲時(shí)間,否則容易被封號,獲取不到返回的數據。

querylist采集微信公眾號文章(微信公眾號爬取程序分享搞成java的難點(diǎn)在于)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 109 次瀏覽 ? 2022-02-27 13:09 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號爬取程序分享搞成java的難點(diǎn)在于)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
  
replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
//console.log("開(kāi)始第一種頁(yè)面爬取");
if(serverResData.toString() !== ""){
6 try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
//console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
//console.log("開(kāi)始第一種頁(yè)面爬取 結束");
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
//console.log(e);
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require('http');
http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
//callback(serverResData);
},
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。 查看全部

  querylist采集微信公眾號文章(微信公眾號爬取程序分享搞成java的難點(diǎn)在于)
  最近需要爬取微信公眾號的文章信息。我在網(wǎng)上搜索,發(fā)現爬取微信公眾號的難點(diǎn)在于公眾號文章的鏈接在PC端打不開(kāi),所以需要使用微信自帶的瀏覽器(獲取參數微信客戶(hù)端補充)可以在其他平臺打開(kāi)),給爬蟲(chóng)帶來(lái)了很大的麻煩。后來(lái)在知乎上看到一個(gè)大牛用php寫(xiě)的微信公眾號爬蟲(chóng)程序,直接按照大佬的思路做成了java。改造過(guò)程中遇到了很多細節和問(wèn)題,就分享給大家。
  系統的基本思路是在A(yíng)ndroid模擬器上運行微信,在模擬器上設置代理,通過(guò)代理服務(wù)器截取微信數據,將獲取到的數據發(fā)送給自己的程序進(jìn)行處理。
  需要準備的環(huán)境:nodejs、anyproxy代理、安卓模擬器
  Nodejs下載地址:我下載的是windows版本的,直接安裝就好了。安裝后直接運行 C:\Program Files\nodejs\npm.cmd 會(huì )自動(dòng)配置環(huán)境。
  anyproxy安裝:按照上一步安裝nodejs后,直接在cmd中運行npm install -g anyproxy即可安裝
  網(wǎng)上的安卓模擬器就好了,有很多。
  首先安裝代理服務(wù)器的證書(shū)。Anyproxy 默認不解析 https 鏈接。安裝證書(shū)后,就可以解析了。在cmd中執行anyproxy --root安裝證書(shū),然后在模擬器中下載證書(shū)。
  然后輸入anyproxy -i 命令打開(kāi)代理服務(wù)。(記得添加參數?。?br />   記住這個(gè)ip和端口,那么安卓模擬器的代理就會(huì )用到這個(gè)?,F在用瀏覽器打開(kāi)網(wǎng)頁(yè)::8002/ 這是anyproxy的網(wǎng)頁(yè)界面,用來(lái)顯示http傳輸的數據。
  點(diǎn)擊上方紅框中的菜單,會(huì )出現一個(gè)二維碼。用安卓模擬器掃碼識別。模擬器(手機)會(huì )下載證書(shū)并安裝。
  現在準備為模擬器設置代理,代理模式設置為手動(dòng),代理ip為運行anyproxy的機器的ip,端口為8001
  準備工作到這里基本完成。在模擬器上打開(kāi)微信,打開(kāi)一個(gè)公眾號的文章,就可以從剛剛打開(kāi)的web界面看到anyproxy抓取的數據:
  上圖紅框是微信文章的鏈接,點(diǎn)擊查看具體數據。如果響應正文中沒(méi)有任何內容,則可能是證書(shū)安裝有問(wèn)題。
  如果頂部清晰,您可以向下。
  這里我們依靠代理服務(wù)來(lái)抓取微信數據,但是我們不能抓取一條數據自己操作微信,所以還是手動(dòng)復制比較好。所以我們需要微信客戶(hù)端自己跳轉到頁(yè)面。這時(shí)可以使用anyproxy攔截微信服務(wù)器返回的數據,將頁(yè)面跳轉代碼注入其中,然后將處理后的數據返回給模擬器,實(shí)現微信客戶(hù)端的自動(dòng)跳轉。
  在anyproxy中打開(kāi)一個(gè)名為rule_default.js的js文件,windows下的文件為:C:\Users\Administrator\AppData\Roaming\npm\node_modules\anyproxy\lib
  文件中有一個(gè)方法叫做replaceServerResDataAsync: function(req,res,serverResData,callback)。該方法負責對anyproxy獲取的數據進(jìn)行各種操作。開(kāi)頭應該只有 callback(serverResData) ;該語(yǔ)句的意思是直接將服務(wù)器響應數據返回給客戶(hù)端。直接把這條語(yǔ)句刪掉,換成下面大牛寫(xiě)的代碼。這里的代碼我沒(méi)有做任何改動(dòng),里面的注釋也解釋的很清楚。順著(zhù)邏輯去理解就好,問(wèn)題不大。
  
replaceServerResDataAsync: function(req,res,serverResData,callback){
if(/mp\/getmasssendmsg/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第一種頁(yè)面形式)
//console.log("開(kāi)始第一種頁(yè)面爬取");
if(serverResData.toString() !== ""){
6 try {//防止報錯退出程序
var reg = /msgList = (.*?);/;//定義歷史消息正則匹配規則
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/InternetSpider/getData/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('http://xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){//如果上面的正則沒(méi)有匹配到,那么這個(gè)頁(yè)面內容可能是公眾號歷史消息頁(yè)面向下翻動(dòng)的第二頁(yè),因為歷史消息第一頁(yè)是html格式的,第二頁(yè)就是json格式的。
//console.log("開(kāi)始第一種頁(yè)面爬取向下翻形式");
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);//錯誤捕捉
}
callback(serverResData);//直接返回第二頁(yè)json內容
}
}
//console.log("開(kāi)始第一種頁(yè)面爬取 結束");
}else if(/mp\/profile_ext\?action=home/i.test(req.url)){//當鏈接地址為公眾號歷史消息頁(yè)面時(shí)(第二種頁(yè)面形式)
try {
var reg = /var msgList = \'(.*?)\';/;//定義歷史消息正則匹配規則(和第一種頁(yè)面形式的正則不同)
var ret = reg.exec(serverResData.toString());//轉換變量為string
HttpPost(ret[1],req.url,"/xxx/showBiz");//這個(gè)函數是后文定義的,將匹配到的歷史消息json發(fā)送到自己的服務(wù)器
var http = require('http');
http.get('xxx/getWxHis', function(res) {//這個(gè)地址是自己服務(wù)器上的一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxHis.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);//將返回的代碼插入到歷史消息頁(yè)面中,并返回顯示出來(lái)
})
});
}catch(e){
//console.log(e);
callback(serverResData);
}
}else if(/mp\/profile_ext\?action=getmsg/i.test(req.url)){//第二種頁(yè)面表現形式的向下翻頁(yè)后的json
try {
var json = JSON.parse(serverResData.toString());
if (json.general_msg_list != []) {
HttpPost(json.general_msg_list,req.url,"/xxx/showBiz");//這個(gè)函數和上面的一樣是后文定義的,將第二頁(yè)歷史消息的json發(fā)送到自己的服務(wù)器
}
}catch(e){
console.log(e);
}
callback(serverResData);
}else if(/mp\/getappmsgext/i.test(req.url)){//當鏈接地址為公眾號文章閱讀量和點(diǎn)贊量時(shí)
try {
HttpPost(serverResData,req.url,"/xxx/getMsgExt");//函數是后文定義的,功能是將文章閱讀量點(diǎn)贊量的json發(fā)送到服務(wù)器
}catch(e){
}
callback(serverResData);
}else if(/s\?__biz/i.test(req.url) || /mp\/rumor/i.test(req.url)){//當鏈接地址為公眾號文章時(shí)(rumor這個(gè)地址是公眾號文章被辟謠了)
try {
var http = require('http');
http.get('http://xxx/getWxPost', function(res) {//這個(gè)地址是自己服務(wù)器上的另一個(gè)程序,目的是為了獲取到下一個(gè)鏈接地址,將地址放在一個(gè)js腳本中,將頁(yè)面自動(dòng)跳轉到下一頁(yè)。后文將介紹getWxPost.php的原理。
res.on('data', function(chunk){
callback(chunk+serverResData);
})
});
}catch(e){
callback(serverResData);
}
}else{
callback(serverResData);
}
//callback(serverResData);
},
  這是一個(gè)簡(jiǎn)短的解釋。微信公眾號歷史新聞頁(yè)面的鏈接有兩種形式:一種以/mp/getmasssendmsg開(kāi)頭,另一種以/mp/profile_ext開(kāi)頭。歷史頁(yè)面可以向下滾動(dòng)。向下滾動(dòng)會(huì )觸發(fā)js事件發(fā)送請求獲取json數據(下一頁(yè)的內容)。還有公眾號文章的鏈接,以及文章的閱讀和點(diǎn)贊鏈接(返回json數據)。這些環(huán)節的形式是固定的,可以通過(guò)邏輯判斷加以區分。這里有個(gè)問(wèn)題,如果歷史頁(yè)面需要一路爬取怎么辦。我的想法是通過(guò)js模擬鼠標向下滑動(dòng),從而觸發(fā)請求提交下一部分列表的加載?;蛘咧苯邮褂胊nyproxy分析下載請求,直接向微信服務(wù)器發(fā)出這個(gè)請求。但是有一個(gè)問(wèn)題是如何判斷沒(méi)有剩余數據。我正在抓取最新數據。我暫時(shí)沒(méi)有這個(gè)要求,但以后可能需要。如果需要,您可以嘗試一下。

querylist采集微信公眾號文章(text-to-texttransformertotext+,、然后在詞向量上做結構化訓練)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 146 次瀏覽 ? 2022-02-26 12:07 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(text-to-texttransformertotext+,、然后在詞向量上做結構化訓練)
  querylist采集微信公眾號文章的文章和粉絲關(guān)注公眾號的文章;可以做momentum分布,或者bloomfilter分布,或者queryfilter分布等等。對于單個(gè)大文件來(lái)說(shuō),最合適的方法是bivariables,即用整個(gè)大文件的query里的所有html作為value,否則可能會(huì )碰到can'tread這種問(wèn)題。
  分詞后做分詞器,另外就是html結構化,mobi分詞。
  樓上的回答都挺好的,再補充一個(gè),可以用單詞向量訓練語(yǔ)義向量,比如用百度翻譯的word2vec的經(jīng)典模型,
  根據你的需求,大概是要找到一個(gè)語(yǔ)料庫,然后用你的語(yǔ)料庫訓練分詞器,生成model。使用你訓練好的模型,來(lái)生成token。比如attention+model,基本就是一個(gè)單詞或者字的向量生成的方法了。比如nlp:每天都有大量文本需要進(jìn)行text-to-texttransformertotext摘要,推薦用你的語(yǔ)料庫訓練模型,然后然后,才是訓練model。
  構建一個(gè)結構化的token表,token表的每個(gè)元素是一段文本,
  大概把token表中的每一個(gè)單詞看成一個(gè)正則項。然后用正則化引入到詞向量。
  構建詞向量、然后在詞向量上做結構化訓練text-to-texttransformertotext摘要
  微信訂閱號文章主要是幾個(gè)大的類(lèi)型,一般是公司、產(chǎn)品、老板、專(zhuān)業(yè)術(shù)語(yǔ)、核心內容等,幾個(gè)類(lèi)型的token分別是訂閱號,公眾號,ceo、產(chǎn)品、新聞、企業(yè)等,且這些token之間又彼此有時(shí)候也不互相關(guān)聯(lián)。其中有些token之間本身也不互相關(guān)聯(lián),比如老板,“老板,問(wèn)題來(lái)了”;另外的token之間相關(guān)性不強,比如產(chǎn)品、產(chǎn)品、產(chǎn)品的詞。
  但是這些token之間有的也需要關(guān)聯(lián)。做這些需要整合語(yǔ)料庫,全量的數據源,很多這類(lèi)數據都是比較老舊的,畢竟那么多流量用戶(hù)關(guān)注了,每天的推送也保存了好幾十萬(wàn),有的生產(chǎn)推送活動(dòng),有些活動(dòng)一有新的或者新的一類(lèi)的推送。需要及時(shí)的和原來(lái)數據庫的數據做相關(guān)性或者切換,不僅生成了語(yǔ)料庫,還生成了大量的token。下面我們利用學(xué)術(shù)界已經(jīng)做好的數據庫來(lái)生成token。
  最老的文本就是書(shū)面用語(yǔ),比如towhom是通過(guò)要做好的企業(yè)和工廠(chǎng)給客戶(hù)發(fā)的信息,語(yǔ)言文字就這些。后面做網(wǎng)絡(luò )查詢(xún)時(shí),我們也加入了更多信息。為了簡(jiǎn)單這里只從四個(gè)類(lèi)型來(lái)創(chuàng )建token。1.公司,企業(yè):比如我是xxx公司的,我是用common_information來(lái)用,如果還有了競爭對手或其他公司也可以用common_information。
  2.個(gè)人:個(gè)人的token分兩種,common_information和wirefox,查看新聞的就查看wirefone,要求用郵箱token;另外common_in。 查看全部

  querylist采集微信公眾號文章(text-to-texttransformertotext+,、然后在詞向量上做結構化訓練)
  querylist采集微信公眾號文章的文章和粉絲關(guān)注公眾號的文章;可以做momentum分布,或者bloomfilter分布,或者queryfilter分布等等。對于單個(gè)大文件來(lái)說(shuō),最合適的方法是bivariables,即用整個(gè)大文件的query里的所有html作為value,否則可能會(huì )碰到can'tread這種問(wèn)題。
  分詞后做分詞器,另外就是html結構化,mobi分詞。
  樓上的回答都挺好的,再補充一個(gè),可以用單詞向量訓練語(yǔ)義向量,比如用百度翻譯的word2vec的經(jīng)典模型,
  根據你的需求,大概是要找到一個(gè)語(yǔ)料庫,然后用你的語(yǔ)料庫訓練分詞器,生成model。使用你訓練好的模型,來(lái)生成token。比如attention+model,基本就是一個(gè)單詞或者字的向量生成的方法了。比如nlp:每天都有大量文本需要進(jìn)行text-to-texttransformertotext摘要,推薦用你的語(yǔ)料庫訓練模型,然后然后,才是訓練model。
  構建一個(gè)結構化的token表,token表的每個(gè)元素是一段文本,
  大概把token表中的每一個(gè)單詞看成一個(gè)正則項。然后用正則化引入到詞向量。
  構建詞向量、然后在詞向量上做結構化訓練text-to-texttransformertotext摘要
  微信訂閱號文章主要是幾個(gè)大的類(lèi)型,一般是公司、產(chǎn)品、老板、專(zhuān)業(yè)術(shù)語(yǔ)、核心內容等,幾個(gè)類(lèi)型的token分別是訂閱號,公眾號,ceo、產(chǎn)品、新聞、企業(yè)等,且這些token之間又彼此有時(shí)候也不互相關(guān)聯(lián)。其中有些token之間本身也不互相關(guān)聯(lián),比如老板,“老板,問(wèn)題來(lái)了”;另外的token之間相關(guān)性不強,比如產(chǎn)品、產(chǎn)品、產(chǎn)品的詞。
  但是這些token之間有的也需要關(guān)聯(lián)。做這些需要整合語(yǔ)料庫,全量的數據源,很多這類(lèi)數據都是比較老舊的,畢竟那么多流量用戶(hù)關(guān)注了,每天的推送也保存了好幾十萬(wàn),有的生產(chǎn)推送活動(dòng),有些活動(dòng)一有新的或者新的一類(lèi)的推送。需要及時(shí)的和原來(lái)數據庫的數據做相關(guān)性或者切換,不僅生成了語(yǔ)料庫,還生成了大量的token。下面我們利用學(xué)術(shù)界已經(jīng)做好的數據庫來(lái)生成token。
  最老的文本就是書(shū)面用語(yǔ),比如towhom是通過(guò)要做好的企業(yè)和工廠(chǎng)給客戶(hù)發(fā)的信息,語(yǔ)言文字就這些。后面做網(wǎng)絡(luò )查詢(xún)時(shí),我們也加入了更多信息。為了簡(jiǎn)單這里只從四個(gè)類(lèi)型來(lái)創(chuàng )建token。1.公司,企業(yè):比如我是xxx公司的,我是用common_information來(lái)用,如果還有了競爭對手或其他公司也可以用common_information。
  2.個(gè)人:個(gè)人的token分兩種,common_information和wirefox,查看新聞的就查看wirefone,要求用郵箱token;另外common_in。

querylist采集微信公眾號文章(網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易新聞+評論新浪微博推薦)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 155 次瀏覽 ? 2022-02-24 21:03 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易新聞+評論新浪微博推薦)
  querylist采集微信公眾號文章自動(dòng)生成詞典,語(yǔ)言詞典,標題詞典,評論詞典,新聞詞典,時(shí)間詞典,特殊字符詞典,類(lèi)型詞典,短語(yǔ)詞典,長(cháng)句詞典,英文短語(yǔ)詞典,英文長(cháng)句詞典,英文單詞詞典,美國發(fā)明詞典,美國發(fā)明短語(yǔ)詞典,單詞排序,查詢(xún)詞典,單詞詞頻統計,查詢(xún)外國明星名人網(wǎng)絡(luò )流行詞文藝小清新系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞+評論系列:網(wǎng)易云音樂(lè )推薦網(wǎng)易新聞+評論新浪微博個(gè)性化推薦系列:網(wǎng)易微博個(gè)性化推薦,新浪微博推薦網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:網(wǎng)易搜狗百科,搜狗百科個(gè)性化推薦,百度百科個(gè)性化推薦部分單詞last。
  fm個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易小說(shuō)個(gè)性化推薦,網(wǎng)易小說(shuō)推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞電影電視劇個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易漫畫(huà)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列。 查看全部

  querylist采集微信公眾號文章(網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易新聞+評論新浪微博推薦)
  querylist采集微信公眾號文章自動(dòng)生成詞典,語(yǔ)言詞典,標題詞典,評論詞典,新聞詞典,時(shí)間詞典,特殊字符詞典,類(lèi)型詞典,短語(yǔ)詞典,長(cháng)句詞典,英文短語(yǔ)詞典,英文長(cháng)句詞典,英文單詞詞典,美國發(fā)明詞典,美國發(fā)明短語(yǔ)詞典,單詞排序,查詢(xún)詞典,單詞詞頻統計,查詢(xún)外國明星名人網(wǎng)絡(luò )流行詞文藝小清新系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦語(yǔ)音新聞+評論系列:網(wǎng)易云音樂(lè )推薦網(wǎng)易新聞+評論新浪微博個(gè)性化推薦系列:網(wǎng)易微博個(gè)性化推薦,新浪微博推薦網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:網(wǎng)易搜狗百科,搜狗百科個(gè)性化推薦,百度百科個(gè)性化推薦部分單詞last。
  fm個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易小說(shuō)個(gè)性化推薦,網(wǎng)易小說(shuō)推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞電影電視劇個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易漫畫(huà)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易課堂個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易游戲個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列:網(wǎng)易云音樂(lè )個(gè)性化推薦,網(wǎng)易云音樂(lè )推薦搜狗百科系列:搜狗百科個(gè)性化推薦,搜狗百科部分單詞網(wǎng)易小說(shuō)個(gè)性化推薦語(yǔ)音新聞娛樂(lè )系列。

querylist采集微信公眾號文章(一個(gè)就是ip代理的質(zhì)量不行,哪里不行呢?)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 214 次瀏覽 ? 2022-02-22 21:21 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(一個(gè)就是ip代理的質(zhì)量不行,哪里不行呢?)
  關(guān)注上一篇未完成的爬蟲(chóng)項目,繼續更新最終代碼片段
  最近比較忙,沒(méi)時(shí)間更新文章的下一篇。就在這幾天,有時(shí)間重新調整代碼,更新里面的細節。發(fā)現調整代碼有很多問(wèn)題,主要是ip代理質(zhì)量不好,哪里不好,往下看就知道了。三、獲取每篇文章文章的閱讀和點(diǎn)贊數
  想要獲取文章的閱讀量,在微信公眾平臺里面直接點(diǎn)擊,是獲取不了文章的閱讀量的,測試如下:
  
  然后我們可以去fiddler查看這個(gè)文章的包,可以看到這個(gè)包是
  文章的內容可以從body的大小來(lái)判斷,也就是文章的內容。
  
  但是我們無(wú)法從這個(gè)路由中獲取文章的閱讀量,因為這個(gè)請求是一個(gè)get請求。如果要獲取文章的閱讀點(diǎn)贊,第一個(gè)請求是post請求,然后需要攜帶三個(gè)重要參數pass_ticket、appmsg_token、phoneCookie。要獲取這三個(gè)參數,我們要把公眾號中的文章放到微信中點(diǎn)擊,然后從fiddler查看抓包情況。
  
  我們去fiddler看一下抓包情況:我們可以看到上面還有一個(gè)get請求,但是下面添加了一個(gè)post請求的內容,然后看一下攜帶的參數,這三個(gè)是重要的得到我們想要的閱讀量參數,以及響應的內容,可以看出已經(jīng)獲取到文章的閱讀量信息?,F在我們可以拼接參數來(lái)發(fā)送請求了。
  
  #獲取文章閱讀量
def get_readNum(link,user_agent):
pass_ticket ="N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U"
appmsg_token = "1073_N8SQ6BkIGIQRZvII-hnp11Whcg8iqFcaN4Rd19rKluJDPVMDagdss_Rwbb-fI4WaoXLyxA244qF3iAp_"
# phoneCookie有效時(shí)間在兩個(gè)小時(shí)左右,需要手動(dòng)更新
phoneCookie = "rewardsn=; wxtokenkey=777; wxuin=2890533338; devicetype=Windows10x64; version=62090529; lang=zh_CN; pass_ticket=N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U; wap_sid2=CNqTqOIKElxWcHFLdDFkanBJZjlZbzdXVmVrejNuVXdUb3hBSERDTTBDcHlSdVAxTTFIeEpwQmdrWnM1TWRFdWtuRUlSRDFnUzRHNkNQZFpVMXl1UEVYalgyX1ljakVFQUFBfjCT5bP5BTgNQAE="
mid = link.split("&")[1].split("=")[1]
idx = link.split("&")[2].split("=")[1]
sn = link.split("&")[3].split("=")[1]
_biz = link.split("&")[0].split("_biz=")[1]
url = "http://mp.weixin.qq.com/mp/getappmsgext"
headers = {
"Cookie": phoneCookie,
"User-Agent":user_agent
}
data = {
"is_only_read": "1",
"is_temp_url": "0",
"appmsg_type": "9",
&#39;reward_uin_count&#39;: &#39;0&#39;
}
params = {
"__biz": _biz,
"mid": mid,
"sn": sn,
"idx": idx,
"key": &#39;777&#39;,
"pass_ticket": pass_ticket,
"appmsg_token": appmsg_token,
"uin": &#39;777&#39;,
"wxtoken": "777"
}
success = False
a=1
while not success:
ip_num = ranDom_ip()[0] # 使用不同的ip進(jìn)行閱讀、點(diǎn)贊量的獲取
try:
print("獲取閱讀量使用ip:%s"%ip_num)
content = requests.post(url, headers=headers, data=data, params=params, proxies=ip_num,timeout=6.6)#設置超時(shí)時(shí)間5秒
time.sleep(4)
content = content.json()
print(link)#文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num=content["appmsgstat"]["old_like_num"] #點(diǎn)贊量
zai_kan=content["appmsgstat"]["like_num"] #在看量
else:
readNum = 0
like_num = 0
success=True
return readNum, like_num
except:
print("獲取閱讀量ip出現問(wèn)題,更換ip進(jìn)入第二次循環(huán)獲?。。?!")
a+=1
# if a%5==0:
content = requests.post(url, headers=headers, data=data, params=params,timeout=5)
time.sleep(3)
content = content.json()
print(link) #文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num = content["appmsgstat"]["old_like_num"] # 點(diǎn)贊量
zai_kan = content["appmsgstat"]["like_num"] # 在看量
else:
print(&#39;文章閱讀點(diǎn)贊獲取失??!&#39;)
readNum=0
like_num=0
# else:
# continue
return readNum, like_num
  需要注意的是,在這三個(gè)重要參數中,phoneCookie 是時(shí)間敏感的,需要手動(dòng)更新,這是最麻煩的,就像 cookie 一樣。通過(guò)傳入的文章鏈接,我們可以在鏈接中提取一些有用的參數,用于后期拼接post請求。不好,所以代碼略顯冗余(需要改進(jìn))。
  四、使用UA代理和IP代理設置每個(gè)文章的爬取速度
  通過(guò)以上操作,我們基本可以爬取文章的鏈接、標題、鏈接,完成初步需求:
  
  但是我在開(kāi)心爬的時(shí)候發(fā)現很快就被反爬發(fā)現了,直接屏蔽了我公眾號的請求。
  
  這時(shí)候就想到了ip proxy來(lái)識別我們是否反爬,主要是從ip和UA,所以后來(lái)做了一個(gè)ip代理池,從一些ip網(wǎng)站爬取ip,通過(guò)了代碼大賽選擇有用的 IP 形成 IP 池。貢獻一段我爬ip的代碼,感興趣的朋友可以直接試試:
  import requests
from bs4 import BeautifulSoup
import json
import random
import re
ip_num=[]
url="http://www.66ip.cn/1.html"
headers={
"Host": "www.66ip.cn ",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Referer": "http://www.66ip.cn/index.html",
"Cookie": "Hm_lvt_1761fabf3c988e7f04bec51acd4073f4=1595575058,1595816310; Hm_lpvt_1761fabf3c988e7f04bec51acd4073f4=1595832351",
}
content=requests.get(url,headers=headers)
content.encoding="gbk"
html=BeautifulSoup(content.text,"html.parser")
# print(html)
content=html.find_all("table",{"border":"2px"})
ip=re.findall(&#39;(\d{1,4}.\d{1,4}.\d{1,4}.\d{1,4})&#39;,str(content))
port=re.findall(&#39;(\d{1,5})&#39;,str(content))
for i in range(len(port)):
ip_num.append(ip[i]+":"+port[i])
proxies = [{&#39;http&#39;:ip_num[num]} for num in range(len(ip_num))]
for i in range(0, len(ip_num)):
proxie = random.choice(proxies)
print("%s:當前使用的ip是:%s" % (i, proxie[&#39;http&#39;]))
try:
response = requests.get("http://mp.weixin.qq.com/", proxies=proxie, timeout=3)
print(response)
if response.status_code == 200:
# with open(&#39;ip.txt&#39;, "a", newline="")as f:
# f.write(proxie[&#39;http&#39;] + "\n")
print("保存成功")
except Exception as e:
print("ip不可用")
  我將過(guò)濾掉網(wǎng)站的ip,保存在本地,然后通過(guò)寫(xiě)一個(gè)函數來(lái)創(chuàng )建一個(gè)ip地址:
  #代理池函數
def ranDom_ip():
with open(&#39;ip.txt&#39;,"r")as f:
ip_num=f.read()
ip_list=ip_num.split("\n")
num=random.randint(0,len(ip_list)-1)
proxies = [{&#39;http&#39;: ip_list[num]}]
return proxies
  然后在函數循環(huán)中調用這個(gè)ip代理的函數,就可以不斷更新自己使用的ip。這是給你的流程圖,所以我們可以知道在哪里使用ip代理功能。
  
  通過(guò)將以上三個(gè)地方加入到我們使用的ip池中,不斷變化的ip就是成功繞過(guò)反爬的點(diǎn)。當我們不斷更改 ip 時(shí),我仍然感到有點(diǎn)不安全。我覺(jué)得UA也需要不斷更新,所以我導入了一個(gè)ua代理池
  from fake_useragent import UserAgent #導入UA代理池
user_agent=UserAgent()
  但需要注意的是,我們不能更改headers中的所有UA,我們只能添加UA代理的一部分,因為公眾號的請求是由兩部分組成的,我們只能添加前半部分。
  
  就像下面的請求頭一樣,我們的Ua代理只能替換前半部分,這樣Ua也是不斷變化的,而且變化的位置和上面ip函數的位置一樣,我們就可以實(shí)現ip,UA在之后每個(gè)請求都是不同的。
   headers={
"Host":"mp.weixin.qq.com",
"User-Agent":user_agent.random +"(KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2469 MMWEBSDK/200601 Mobile Safari/537.36 MMWEBID/3809 MicroMessenger/7.0.16.1680(0x27001033) Process/toolsmp WeChat/arm64 NetType/WIFI Language/zh_CN ABI/arm64"
}
  在這兩個(gè)參數之后,我們基本可以控制不被反爬蟲(chóng)發(fā)現了,但是還有一點(diǎn)很重要,就是控制爬取的速度,因為ip和ua是不斷變化的,但是你公眾號的cookie不能被改變。如果爬取速度過(guò)快,會(huì )識別出訪(fǎng)問(wèn)你公眾號某個(gè)界面的頻率太快,直接禁止你公眾號搜索的界面文章,所以我們需要做一個(gè)請求延遲,那么在這個(gè)過(guò)程中我們哪里可以做得更好呢?可以在流程圖中標記的位置進(jìn)行延遲。
  
  這樣既能控制速度,又能防止本地ip和ua被發(fā)現,妙不可言。缺點(diǎn)是我沒(méi)有找到高質(zhì)量的ip池。我用的是free ip,所以很多都是在換ip的過(guò)程中拿不到的。讀取量方面(窮人嘆),如果有高級IP代理池,速度是非??斓?。完整的代碼不會(huì )在這里粘貼。有興趣我可以私發(fā)。 查看全部

  querylist采集微信公眾號文章(一個(gè)就是ip代理的質(zhì)量不行,哪里不行呢?)
  關(guān)注上一篇未完成的爬蟲(chóng)項目,繼續更新最終代碼片段
  最近比較忙,沒(méi)時(shí)間更新文章的下一篇。就在這幾天,有時(shí)間重新調整代碼,更新里面的細節。發(fā)現調整代碼有很多問(wèn)題,主要是ip代理質(zhì)量不好,哪里不好,往下看就知道了。三、獲取每篇文章文章的閱讀和點(diǎn)贊數
  想要獲取文章的閱讀量,在微信公眾平臺里面直接點(diǎn)擊,是獲取不了文章的閱讀量的,測試如下:
  
  然后我們可以去fiddler查看這個(gè)文章的包,可以看到這個(gè)包是
  文章的內容可以從body的大小來(lái)判斷,也就是文章的內容。
  
  但是我們無(wú)法從這個(gè)路由中獲取文章的閱讀量,因為這個(gè)請求是一個(gè)get請求。如果要獲取文章的閱讀點(diǎn)贊,第一個(gè)請求是post請求,然后需要攜帶三個(gè)重要參數pass_ticket、appmsg_token、phoneCookie。要獲取這三個(gè)參數,我們要把公眾號中的文章放到微信中點(diǎn)擊,然后從fiddler查看抓包情況。
  
  我們去fiddler看一下抓包情況:我們可以看到上面還有一個(gè)get請求,但是下面添加了一個(gè)post請求的內容,然后看一下攜帶的參數,這三個(gè)是重要的得到我們想要的閱讀量參數,以及響應的內容,可以看出已經(jīng)獲取到文章的閱讀量信息?,F在我們可以拼接參數來(lái)發(fā)送請求了。
  
  #獲取文章閱讀量
def get_readNum(link,user_agent):
pass_ticket ="N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U"
appmsg_token = "1073_N8SQ6BkIGIQRZvII-hnp11Whcg8iqFcaN4Rd19rKluJDPVMDagdss_Rwbb-fI4WaoXLyxA244qF3iAp_"
# phoneCookie有效時(shí)間在兩個(gè)小時(shí)左右,需要手動(dòng)更新
phoneCookie = "rewardsn=; wxtokenkey=777; wxuin=2890533338; devicetype=Windows10x64; version=62090529; lang=zh_CN; pass_ticket=N/Sd9In6UXfiRSmhdRi+kRX2ZUn9HC5+4aAeb6YksHOWNLyV3VK48YZQY6oWK0/U; wap_sid2=CNqTqOIKElxWcHFLdDFkanBJZjlZbzdXVmVrejNuVXdUb3hBSERDTTBDcHlSdVAxTTFIeEpwQmdrWnM1TWRFdWtuRUlSRDFnUzRHNkNQZFpVMXl1UEVYalgyX1ljakVFQUFBfjCT5bP5BTgNQAE="
mid = link.split("&")[1].split("=")[1]
idx = link.split("&")[2].split("=")[1]
sn = link.split("&")[3].split("=")[1]
_biz = link.split("&")[0].split("_biz=")[1]
url = "http://mp.weixin.qq.com/mp/getappmsgext"
headers = {
"Cookie": phoneCookie,
"User-Agent":user_agent
}
data = {
"is_only_read": "1",
"is_temp_url": "0",
"appmsg_type": "9",
&#39;reward_uin_count&#39;: &#39;0&#39;
}
params = {
"__biz": _biz,
"mid": mid,
"sn": sn,
"idx": idx,
"key": &#39;777&#39;,
"pass_ticket": pass_ticket,
"appmsg_token": appmsg_token,
"uin": &#39;777&#39;,
"wxtoken": "777"
}
success = False
a=1
while not success:
ip_num = ranDom_ip()[0] # 使用不同的ip進(jìn)行閱讀、點(diǎn)贊量的獲取
try:
print("獲取閱讀量使用ip:%s"%ip_num)
content = requests.post(url, headers=headers, data=data, params=params, proxies=ip_num,timeout=6.6)#設置超時(shí)時(shí)間5秒
time.sleep(4)
content = content.json()
print(link)#文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num=content["appmsgstat"]["old_like_num"] #點(diǎn)贊量
zai_kan=content["appmsgstat"]["like_num"] #在看量
else:
readNum = 0
like_num = 0
success=True
return readNum, like_num
except:
print("獲取閱讀量ip出現問(wèn)題,更換ip進(jìn)入第二次循環(huán)獲?。。?!")
a+=1
# if a%5==0:
content = requests.post(url, headers=headers, data=data, params=params,timeout=5)
time.sleep(3)
content = content.json()
print(link) #文章鏈接
print(content)#文章內容
if &#39;appmsgstat&#39; in content:
readNum = content["appmsgstat"]["read_num"]
like_num = content["appmsgstat"]["old_like_num"] # 點(diǎn)贊量
zai_kan = content["appmsgstat"]["like_num"] # 在看量
else:
print(&#39;文章閱讀點(diǎn)贊獲取失??!&#39;)
readNum=0
like_num=0
# else:
# continue
return readNum, like_num
  需要注意的是,在這三個(gè)重要參數中,phoneCookie 是時(shí)間敏感的,需要手動(dòng)更新,這是最麻煩的,就像 cookie 一樣。通過(guò)傳入的文章鏈接,我們可以在鏈接中提取一些有用的參數,用于后期拼接post請求。不好,所以代碼略顯冗余(需要改進(jìn))。
  四、使用UA代理和IP代理設置每個(gè)文章的爬取速度
  通過(guò)以上操作,我們基本可以爬取文章的鏈接、標題、鏈接,完成初步需求:
  
  但是我在開(kāi)心爬的時(shí)候發(fā)現很快就被反爬發(fā)現了,直接屏蔽了我公眾號的請求。
  
  這時(shí)候就想到了ip proxy來(lái)識別我們是否反爬,主要是從ip和UA,所以后來(lái)做了一個(gè)ip代理池,從一些ip網(wǎng)站爬取ip,通過(guò)了代碼大賽選擇有用的 IP 形成 IP 池。貢獻一段我爬ip的代碼,感興趣的朋友可以直接試試:
  import requests
from bs4 import BeautifulSoup
import json
import random
import re
ip_num=[]
url="http://www.66ip.cn/1.html"
headers={
"Host": "www.66ip.cn ",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.89 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
"Referer": "http://www.66ip.cn/index.html",
"Cookie": "Hm_lvt_1761fabf3c988e7f04bec51acd4073f4=1595575058,1595816310; Hm_lpvt_1761fabf3c988e7f04bec51acd4073f4=1595832351",
}
content=requests.get(url,headers=headers)
content.encoding="gbk"
html=BeautifulSoup(content.text,"html.parser")
# print(html)
content=html.find_all("table",{"border":"2px"})
ip=re.findall(&#39;(\d{1,4}.\d{1,4}.\d{1,4}.\d{1,4})&#39;,str(content))
port=re.findall(&#39;(\d{1,5})&#39;,str(content))
for i in range(len(port)):
ip_num.append(ip[i]+":"+port[i])
proxies = [{&#39;http&#39;:ip_num[num]} for num in range(len(ip_num))]
for i in range(0, len(ip_num)):
proxie = random.choice(proxies)
print("%s:當前使用的ip是:%s" % (i, proxie[&#39;http&#39;]))
try:
response = requests.get("http://mp.weixin.qq.com/", proxies=proxie, timeout=3)
print(response)
if response.status_code == 200:
# with open(&#39;ip.txt&#39;, "a", newline="")as f:
# f.write(proxie[&#39;http&#39;] + "\n")
print("保存成功")
except Exception as e:
print("ip不可用")
  我將過(guò)濾掉網(wǎng)站的ip,保存在本地,然后通過(guò)寫(xiě)一個(gè)函數來(lái)創(chuàng )建一個(gè)ip地址:
  #代理池函數
def ranDom_ip():
with open(&#39;ip.txt&#39;,"r")as f:
ip_num=f.read()
ip_list=ip_num.split("\n")
num=random.randint(0,len(ip_list)-1)
proxies = [{&#39;http&#39;: ip_list[num]}]
return proxies
  然后在函數循環(huán)中調用這個(gè)ip代理的函數,就可以不斷更新自己使用的ip。這是給你的流程圖,所以我們可以知道在哪里使用ip代理功能。
  
  通過(guò)將以上三個(gè)地方加入到我們使用的ip池中,不斷變化的ip就是成功繞過(guò)反爬的點(diǎn)。當我們不斷更改 ip 時(shí),我仍然感到有點(diǎn)不安全。我覺(jué)得UA也需要不斷更新,所以我導入了一個(gè)ua代理池
  from fake_useragent import UserAgent #導入UA代理池
user_agent=UserAgent()
  但需要注意的是,我們不能更改headers中的所有UA,我們只能添加UA代理的一部分,因為公眾號的請求是由兩部分組成的,我們只能添加前半部分。
  
  就像下面的請求頭一樣,我們的Ua代理只能替換前半部分,這樣Ua也是不斷變化的,而且變化的位置和上面ip函數的位置一樣,我們就可以實(shí)現ip,UA在之后每個(gè)請求都是不同的。
   headers={
"Host":"mp.weixin.qq.com",
"User-Agent":user_agent.random +"(KHTML, like Gecko) Version/4.0 Chrome/78.0.3904.62 XWEB/2469 MMWEBSDK/200601 Mobile Safari/537.36 MMWEBID/3809 MicroMessenger/7.0.16.1680(0x27001033) Process/toolsmp WeChat/arm64 NetType/WIFI Language/zh_CN ABI/arm64"
}
  在這兩個(gè)參數之后,我們基本可以控制不被反爬蟲(chóng)發(fā)現了,但是還有一點(diǎn)很重要,就是控制爬取的速度,因為ip和ua是不斷變化的,但是你公眾號的cookie不能被改變。如果爬取速度過(guò)快,會(huì )識別出訪(fǎng)問(wèn)你公眾號某個(gè)界面的頻率太快,直接禁止你公眾號搜索的界面文章,所以我們需要做一個(gè)請求延遲,那么在這個(gè)過(guò)程中我們哪里可以做得更好呢?可以在流程圖中標記的位置進(jìn)行延遲。
  
  這樣既能控制速度,又能防止本地ip和ua被發(fā)現,妙不可言。缺點(diǎn)是我沒(méi)有找到高質(zhì)量的ip池。我用的是free ip,所以很多都是在換ip的過(guò)程中拿不到的。讀取量方面(窮人嘆),如果有高級IP代理池,速度是非??斓?。完整的代碼不會(huì )在這里粘貼。有興趣我可以私發(fā)。

querylist采集微信公眾號文章(querylist采集微信公眾號文章列表(關(guān)鍵詞)(圖))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 120 次瀏覽 ? 2022-02-22 07:01 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(querylist采集微信公眾號文章列表(關(guān)鍵詞)(圖))
  querylist采集微信公眾號文章列表請輸入關(guān)鍵詞,以微信公眾號文章為例。不然無(wú)法查詢(xún)。創(chuàng )建調研創(chuàng )建一個(gè)查詢(xún)調研選擇所有的開(kāi)放平臺數據(由于此是采集公眾號的文章,故名為查詢(xún)調研)通過(guò)鼠標拖動(dòng)的方式對查詢(xún)語(yǔ)句進(jìn)行調整:右鍵粘貼->刪除指定元素->確定通過(guò)在標注框中輸入公眾號數字->確定清晰度將無(wú)法更改,因為ga采集后需要驗證語(yǔ)句完整性:ga:-bin/ga-bin/release-bin/share?ie=utf-8ga-release::-bin/ga-bin/release-bin/share?ie=utf-8運行g(shù)a-bin/release-bin/release-bin/share?ie=utf-8release-bin就可以進(jìn)行上傳微信公眾號文章的調研了。
  運行sci-hubrawspiderforadobedirectmedia(百度網(wǎng)盤(pán))保存下來(lái)后:ga-bin/release-bin/release-bin/(在sci-hub獲取下來(lái)的)release-bin是可以更改的。1.yml格式:4個(gè)set。set(filename,listname,title,content,music,export)filename:文件名,如ga-bin.cp2sdm。
 ?。ㄕ埐榭次⑿殴娞栁恼拢﹍istname:文件名,如ga-bin.jdqtqbvator44n22685fa90&title:文件名,如ga-bin.rio(通過(guò)查看公眾號文章數字可得知)title:文件名,如ga-bin.jdqtqbvator4n22685fa90&content:文件名,如ga-bin.jdqtqbvator4n22685fa90&music:文件名,如ga-bin.emacs-dlspathr8mp4f269687-i&export:鏈接,如微信公眾號文章地址。
  2.xml格式:4個(gè)set。set(filename,url,value,offset)filename:文件名,如kij.xhie.ji.li.ja.lan.qqq.zh.tkj.g.ja.ga.jaj.tj.xz.ji.qq.csv(請查看微信公眾號文章地址)url:文件名,如ga-bin.hub.hpzr.xifc4zyr.gaj.hweb.home.hideprepath.hnk.exff.wb.xui.xx.xxz_xnxt.jp.me.xx.xx.join.xxjsw.class1.xxg.xx.xxg.zz(請查看微信公眾號文章地址)value:文件名,如ga-bin.ge.curl.xdata.gej.chstm.x1g.xhx.ji.gaj.chstm.x1g.zero.tkj.zh.tkj.sa.ji.zj.sa.zn.rk.ji.gaj.tj.zz.xx.xx1.ji.li.xx.xx.xx.xx.jp.xx.xx。 查看全部

  querylist采集微信公眾號文章(querylist采集微信公眾號文章列表(關(guān)鍵詞)(圖))
  querylist采集微信公眾號文章列表請輸入關(guān)鍵詞,以微信公眾號文章為例。不然無(wú)法查詢(xún)。創(chuàng )建調研創(chuàng )建一個(gè)查詢(xún)調研選擇所有的開(kāi)放平臺數據(由于此是采集公眾號的文章,故名為查詢(xún)調研)通過(guò)鼠標拖動(dòng)的方式對查詢(xún)語(yǔ)句進(jìn)行調整:右鍵粘貼->刪除指定元素->確定通過(guò)在標注框中輸入公眾號數字->確定清晰度將無(wú)法更改,因為ga采集后需要驗證語(yǔ)句完整性:ga:-bin/ga-bin/release-bin/share?ie=utf-8ga-release::-bin/ga-bin/release-bin/share?ie=utf-8運行g(shù)a-bin/release-bin/release-bin/share?ie=utf-8release-bin就可以進(jìn)行上傳微信公眾號文章的調研了。
  運行sci-hubrawspiderforadobedirectmedia(百度網(wǎng)盤(pán))保存下來(lái)后:ga-bin/release-bin/release-bin/(在sci-hub獲取下來(lái)的)release-bin是可以更改的。1.yml格式:4個(gè)set。set(filename,listname,title,content,music,export)filename:文件名,如ga-bin.cp2sdm。
 ?。ㄕ埐榭次⑿殴娞栁恼拢﹍istname:文件名,如ga-bin.jdqtqbvator44n22685fa90&title:文件名,如ga-bin.rio(通過(guò)查看公眾號文章數字可得知)title:文件名,如ga-bin.jdqtqbvator4n22685fa90&content:文件名,如ga-bin.jdqtqbvator4n22685fa90&music:文件名,如ga-bin.emacs-dlspathr8mp4f269687-i&export:鏈接,如微信公眾號文章地址。
  2.xml格式:4個(gè)set。set(filename,url,value,offset)filename:文件名,如kij.xhie.ji.li.ja.lan.qqq.zh.tkj.g.ja.ga.jaj.tj.xz.ji.qq.csv(請查看微信公眾號文章地址)url:文件名,如ga-bin.hub.hpzr.xifc4zyr.gaj.hweb.home.hideprepath.hnk.exff.wb.xui.xx.xxz_xnxt.jp.me.xx.xx.join.xxjsw.class1.xxg.xx.xxg.zz(請查看微信公眾號文章地址)value:文件名,如ga-bin.ge.curl.xdata.gej.chstm.x1g.xhx.ji.gaj.chstm.x1g.zero.tkj.zh.tkj.sa.ji.zj.sa.zn.rk.ji.gaj.tj.zz.xx.xx1.ji.li.xx.xx.xx.xx.jp.xx.xx。

querylist采集微信公眾號文章( Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看 )

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 158 次瀏覽 ? 2022-02-21 08:11 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(
Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
)
  
  
  
  前言
  本文文字及圖片經(jīng)網(wǎng)絡(luò )過(guò)濾,僅供學(xué)習交流,不具有任何商業(yè)用途。如有任何問(wèn)題,請及時(shí)聯(lián)系我們處理。
  Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
  https://space.bilibili.com/523606542
  
  基礎開(kāi)發(fā)環(huán)境爬取兩個(gè)公眾號的文章:
  1、爬取所有文章
  青燈編程公眾號
  2、爬取所有關(guān)于python的公眾號文章
  爬取所有文章
  青燈編程公眾號
  1、登錄公眾號后點(diǎn)擊圖文
  
  2、打開(kāi)開(kāi)發(fā)者工具
  
  3、點(diǎn)擊超鏈接
  
  加載相關(guān)數據時(shí),有關(guān)于數據包的,包括文章標題、鏈接、摘要、發(fā)布時(shí)間等。你也可以選擇其他公眾號去爬取,但這需要你有微信公眾號。
  添加 cookie
  import pprint
import time
import requests
import csv
f = open('青燈公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(0, 40, 5):
url = f'https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin={page}&count=5&fakeid=&type=9&query=&token=1252678642&lang=zh_CN&f=json&ajax=1'
headers = {
'cookie': '加cookie',
'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&createType=0&token=1252678642&lang=zh_CN',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
html_data = response.json()
pprint.pprint(response.json())
lis = html_data['app_msg_list']
for li in lis:
title = li['title']
link_url = li['link']
update_time = li['update_time']
timeArray = time.localtime(int(update_time))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': link_url,
}
csv_writer.writerow(dit)
print(dit)
  爬取所有關(guān)于python的公眾號文章
  1、搜狗搜索python選擇微信
  
  注意:如果不登錄,只能爬取前十頁(yè)的數據。登錄后可以爬取2W多篇文章文章.
  2、抓取標題、公眾號、文章地址,抓取發(fā)布時(shí)的靜態(tài)網(wǎng)頁(yè)
  import time
import requests
import parsel
import csv
f = open('公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '公眾號', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(1, 2447):
url = f'https://weixin.sogou.com/weixin?query=python&_sug_type_=&s_from=input&_sug_=n&type=2&page={page}&ie=utf8'
headers = {
'Cookie': '自己的cookie',
'Host': 'weixin.sogou.com',
'Referer': 'https://www.sogou.com/web?query=python&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=1396&sst0=1610779538290&lkt=0%2C0%2C0&sugsuv=1590216228113568&sugtime=1610779538290',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
lis = selector.css('.news-list li')
for li in lis:
title_list = li.css('.txt-box h3 a::text').getall()
num = len(title_list)
if num == 1:
title_str = 'python' + title_list[0]
else:
title_str = 'python'.join(title_list)
href = li.css('.txt-box h3 a::attr(href)').get()
article_url = 'https://weixin.sogou.com' + href
name = li.css('.s-p a::text').get()
date = li.css('.s-p::attr(t)').get()
timeArray = time.localtime(int(date))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title_str,
'公眾號': name,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': article_url,
}
csv_writer.writerow(dit)
print(title_str, name, otherStyleTime, article_url)
   查看全部

  querylist采集微信公眾號文章(
Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
)
  
  
  
  前言
  本文文字及圖片經(jīng)網(wǎng)絡(luò )過(guò)濾,僅供學(xué)習交流,不具有任何商業(yè)用途。如有任何問(wèn)題,請及時(shí)聯(lián)系我們處理。
  Python爬蟲(chóng)、數據分析、網(wǎng)站開(kāi)發(fā)等案例教程視頻免費在線(xiàn)觀(guān)看
  https://space.bilibili.com/523606542
  
  基礎開(kāi)發(fā)環(huán)境爬取兩個(gè)公眾號的文章:
  1、爬取所有文章
  青燈編程公眾號
  2、爬取所有關(guān)于python的公眾號文章
  爬取所有文章
  青燈編程公眾號
  1、登錄公眾號后點(diǎn)擊圖文
  
  2、打開(kāi)開(kāi)發(fā)者工具
  
  3、點(diǎn)擊超鏈接
  
  加載相關(guān)數據時(shí),有關(guān)于數據包的,包括文章標題、鏈接、摘要、發(fā)布時(shí)間等。你也可以選擇其他公眾號去爬取,但這需要你有微信公眾號。
  添加 cookie
  import pprint
import time
import requests
import csv
f = open('青燈公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(0, 40, 5):
url = f'https://mp.weixin.qq.com/cgi-bin/appmsg?action=list_ex&begin={page}&count=5&fakeid=&type=9&query=&token=1252678642&lang=zh_CN&f=json&ajax=1'
headers = {
'cookie': '加cookie',
'referer': 'https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit_v2&action=edit&isNew=1&type=10&createType=0&token=1252678642&lang=zh_CN',
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
html_data = response.json()
pprint.pprint(response.json())
lis = html_data['app_msg_list']
for li in lis:
title = li['title']
link_url = li['link']
update_time = li['update_time']
timeArray = time.localtime(int(update_time))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': link_url,
}
csv_writer.writerow(dit)
print(dit)
  爬取所有關(guān)于python的公眾號文章
  1、搜狗搜索python選擇微信
  
  注意:如果不登錄,只能爬取前十頁(yè)的數據。登錄后可以爬取2W多篇文章文章.
  2、抓取標題、公眾號、文章地址,抓取發(fā)布時(shí)的靜態(tài)網(wǎng)頁(yè)
  import time
import requests
import parsel
import csv
f = open('公眾號文章.csv', mode='a', encoding='utf-8', newline='')
csv_writer = csv.DictWriter(f, fieldnames=['標題', '公眾號', '文章發(fā)布時(shí)間', '文章地址'])
csv_writer.writeheader()
for page in range(1, 2447):
url = f'https://weixin.sogou.com/weixin?query=python&_sug_type_=&s_from=input&_sug_=n&type=2&page={page}&ie=utf8'
headers = {
'Cookie': '自己的cookie',
'Host': 'weixin.sogou.com',
'Referer': 'https://www.sogou.com/web?query=python&_asf=www.sogou.com&_ast=&w=01019900&p=40040100&ie=utf8&from=index-nologin&s_from=index&sut=1396&sst0=1610779538290&lkt=0%2C0%2C0&sugsuv=1590216228113568&sugtime=1610779538290',
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36',
}
response = requests.get(url=url, headers=headers)
selector = parsel.Selector(response.text)
lis = selector.css('.news-list li')
for li in lis:
title_list = li.css('.txt-box h3 a::text').getall()
num = len(title_list)
if num == 1:
title_str = 'python' + title_list[0]
else:
title_str = 'python'.join(title_list)
href = li.css('.txt-box h3 a::attr(href)').get()
article_url = 'https://weixin.sogou.com' + href
name = li.css('.s-p a::text').get()
date = li.css('.s-p::attr(t)').get()
timeArray = time.localtime(int(date))
otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray)
dit = {
'標題': title_str,
'公眾號': name,
'文章發(fā)布時(shí)間': otherStyleTime,
'文章地址': article_url,
}
csv_writer.writerow(dit)
print(title_str, name, otherStyleTime, article_url)
  

querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 138 次瀏覽 ? 2022-02-21 08:08 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class=&#39;login__type__container__select-type&#39;]").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name=&#39;account&#39;]")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name=&#39;password&#39;]")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class=&#39;btn_login&#39;]").click()
sleep(2)
# 微信登錄驗證
print(&#39;請掃描二維碼&#39;)
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item[&#39;name&#39;]] = item[&#39;value&#39;]
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open(&#39;cookie.txt&#39;, &#39;w+&#39;, encoding=&#39;utf-8&#39;) as f:
f.write(cookie_str)
print(&#39;cookie保存到本地成功&#39;)
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split(&#39;?&#39;)[1].split(&#39;&&#39;)
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split(&#39;=&#39;)[0]] = item.split(&#39;=&#39;)[1]
# 返回token
return paramdict[&#39;token&#39;]
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第二步:1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  url= &#39;https://mp.weixin.qq.com&#39;
headers = {
&#39;HOST&#39;: &#39;mp.weixin.qq.com&#39;,
&#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63&#39;
}
with open(&#39;cookie.txt&#39;, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = &#39;https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
&#39;action&#39;: &#39;search_biz&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;query&#39;: &#39;搜索的公眾號名稱(chēng)&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists= search_resp.json().get(&#39;list&#39;)[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid= lists.get(&#39;fakeid&#39;)
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  appmsg_url= &#39;https://mp.weixin.qq.com/cgi-bin/appmsg?&#39;
params_data = {
&#39;action&#39;: &#39;list_ex&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;fakeid&#39;: fakeid,
&#39;type&#39;: &#39;9&#39;,
&#39;query&#39;: &#39;&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。 查看全部

  querylist采集微信公眾號文章(Python微信公眾號文章爬取一.思路我們通過(guò)網(wǎng)頁(yè)版)
  Python微信公眾號文章爬取
  一.想法
  我們通過(guò)微信公眾平臺網(wǎng)頁(yè)版圖文消息中的超鏈接獲取我們需要的界面
  
  
  從界面中我們可以得到對應的微信公眾號和所有對應的微信公眾號文章。二.界面分析
  獲取微信公眾號界面:
  范圍:
  行動(dòng)=search_biz
  開(kāi)始=0
  計數=5
  query=公眾號
  token = 每個(gè)賬戶(hù)對應的token值
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  所以在這個(gè)界面中,我們只需要獲取token,查詢(xún)的是你需要搜索的公眾號,登錄后通過(guò)web鏈接即可獲取token。
  
  獲取公眾號對應的文章接口:
  范圍:
  行動(dòng)=list_ex
  開(kāi)始=0
  計數=5
  fakeid=MjM5NDAwMTA2MA==
  類(lèi)型=9
  查詢(xún)=
  令牌=557131216
  lang=zh_CN
  f=json
  阿賈克斯=1
  請求方法:
  得到
  在這個(gè)接口中,我們需要獲取的值是上一步的token和fakeid,而這個(gè)fakeid可以在第一個(gè)接口中獲取。這樣我們就可以得到微信公眾號文章的數據了。
  
  三.實(shí)現第一步:
  首先我們需要通過(guò)selenium來(lái)模擬登錄,然后獲取cookie和對應的token
  def weChat_login(user, password):
post = {}
browser = webdriver.Chrome()
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(3)
browser.delete_all_cookies()
sleep(2)
# 點(diǎn)擊切換到賬號密碼輸入
browser.find_element_by_xpath("//a[@class=&#39;login__type__container__select-type&#39;]").click()
sleep(2)
# 模擬用戶(hù)點(diǎn)擊
input_user = browser.find_element_by_xpath("//input[@name=&#39;account&#39;]")
input_user.send_keys(user)
input_password = browser.find_element_by_xpath("//input[@name=&#39;password&#39;]")
input_password.send_keys(password)
sleep(2)
# 點(diǎn)擊登錄
browser.find_element_by_xpath("//a[@class=&#39;btn_login&#39;]").click()
sleep(2)
# 微信登錄驗證
print(&#39;請掃描二維碼&#39;)
sleep(20)
# 刷新當前網(wǎng)頁(yè)
browser.get(&#39;https://mp.weixin.qq.com/&#39;)
sleep(5)
# 獲取當前網(wǎng)頁(yè)鏈接
url = browser.current_url
# 獲取當前cookie
cookies = browser.get_cookies()
for item in cookies:
post[item[&#39;name&#39;]] = item[&#39;value&#39;]
# 轉換為字符串
cookie_str = json.dumps(post)
# 存儲到本地
with open(&#39;cookie.txt&#39;, &#39;w+&#39;, encoding=&#39;utf-8&#39;) as f:
f.write(cookie_str)
print(&#39;cookie保存到本地成功&#39;)
# 對當前網(wǎng)頁(yè)鏈接進(jìn)行切片,獲取到token
paramList = url.strip().split(&#39;?&#39;)[1].split(&#39;&&#39;)
# 定義一個(gè)字典存儲數據
paramdict = {}
for item in paramList:
paramdict[item.split(&#39;=&#39;)[0]] = item.split(&#39;=&#39;)[1]
# 返回token
return paramdict[&#39;token&#39;]
  定義了一個(gè)登錄方法,其中的參數是登錄賬號和密碼,然后定義了一個(gè)字典來(lái)存儲cookie的值。模擬用戶(hù)輸入對應的賬號密碼,點(diǎn)擊登錄,會(huì )出現掃碼驗證,登錄微信即可掃碼。
  刷新當前網(wǎng)頁(yè)后,獲取當前cookie和token并返回。
  第二步:1.請求獲取對應的公眾號接口,獲取我們需要的fakeid
  url= &#39;https://mp.weixin.qq.com&#39;
headers = {
&#39;HOST&#39;: &#39;mp.weixin.qq.com&#39;,
&#39;User-Agent&#39;: &#39;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.183 Safari/537.36 Edg/86.0.622.63&#39;
}
with open(&#39;cookie.txt&#39;, &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:
cookie = f.read()
cookies = json.loads(cookie)
resp = requests.get(url=url, headers=headers, cookies=cookies)
search_url = &#39;https://mp.weixin.qq.com/cgi-b ... 39%3B
params = {
&#39;action&#39;: &#39;search_biz&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;query&#39;: &#39;搜索的公眾號名稱(chēng)&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
search_resp = requests.get(url=search_url, cookies=cookies, headers=headers, params=params)
  傳入我們獲取的token和cookie,然后通過(guò)requests.get請求獲取微信公眾號返回的json數據
  lists= search_resp.json().get(&#39;list&#39;)[0]
  通過(guò)以上代碼可以獲取對應的公眾號數據
  fakeid= lists.get(&#39;fakeid&#39;)
  通過(guò)上面的代碼,可以得到對應的 fakeid
  2.請求訪(fǎng)問(wèn)微信公眾號文章接口,獲取我們需要的文章數據
  appmsg_url= &#39;https://mp.weixin.qq.com/cgi-bin/appmsg?&#39;
params_data = {
&#39;action&#39;: &#39;list_ex&#39;,
&#39;begin&#39;: &#39;0&#39;,
&#39;count&#39;: &#39;5&#39;,
&#39;fakeid&#39;: fakeid,
&#39;type&#39;: &#39;9&#39;,
&#39;query&#39;: &#39;&#39;,
&#39;token&#39;: token,
&#39;lang&#39;: &#39;zh_CN&#39;,
&#39;f&#39;: &#39;json&#39;,
&#39;ajax&#39;: &#39;1&#39;
}
appmsg_resp = requests.get(url=appmsg_url, cookies=cookies, headers=headers, params=params_data)
  我們傳入 fakeid 和 token 然后調用 requests.get 請求接口獲取返回的 json 數據。
  我們實(shí)現了微信公眾號文章的爬取。
  四.總結
  通過(guò)爬取微信公眾號文章,需要掌握selenium和requests的用法,以及如何獲取request接口。但是需要注意的是,我們在循環(huán)獲取文章的時(shí)候,一定要設置一個(gè)延遲時(shí)間,否則容易被封號,獲取不到返回的數據。

querylist采集微信公眾號文章(微信公眾號爬取方式)

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 135 次瀏覽 ? 2022-02-20 09:12 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(微信公眾號爬取方式)
  最近在做自己的一個(gè)項目,涉及到需要通過(guò)python爬取微信公眾號文章。由于微信的獨特方法,無(wú)法直接爬取。在研究了一些 文章 之后,我可能會(huì )有一個(gè)想法。而且網(wǎng)上能查到的解決方案都沒(méi)有問(wèn)題,但是里面的代碼由于一些第三方庫的改動(dòng),基本無(wú)法使用。本文章是寫(xiě)給需要爬取公眾號文章的朋友,文章最后也會(huì )提供python源碼下載。
  ##公眾號抓取方式
  爬取公眾號主要有兩種方式。一是通過(guò)搜狗搜索微信公眾號頁(yè)面找到文章地址,然后爬取具體的文章內容;注冊公眾號然后通過(guò)公眾號的搜索界面查詢(xún)文章的地址,然后根據地址爬取文章的內容。
  這兩種方案各有優(yōu)缺點(diǎn)。通過(guò)搜狗搜索做的核心思想是通過(guò)request模擬搜狗搜索公眾號,然后解析搜索結果頁(yè)面,然后根據官方主頁(yè)地址爬取文章的詳細信息帳戶(hù)。但是這里需要注意,因為搜狗和騰訊的協(xié)議,只能顯示最新的10個(gè)文章,沒(méi)有辦法獲取所有的文章。如果你想得到文章的所有朋友,你可能不得不使用第二種方法。第二種方法的缺點(diǎn)是注冊公眾號通過(guò)騰訊認證比較麻煩,通過(guò)調用接口公眾號查詢(xún)接口進(jìn)行查詢(xún),但是翻頁(yè)需要通過(guò)selenium來(lái)模擬滑動(dòng)翻頁(yè)操作,整個(gè)過(guò)程比較麻煩。因為我的項目中不需要history文章,所以我使用搜狗搜索來(lái)爬取公眾號。
  爬取最近10個(gè)公眾號文章
  python需要依賴(lài)的三方庫如下:
  urllib,pyquery,請求,硒
  具體邏輯寫(xiě)在評論里,沒(méi)有特別復雜的地方。
  爬蟲(chóng)核心類(lèi)
  ````蟒蛇
  #!/usr/bin/python
  # 編碼:utf-8
  [Python] 純文本查看
  import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from urllib import quote
from pyquery import PyQuery as pq
import requests
import time
import re
import os
from selenium.webdriver import Chrome
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.wait import WebDriverWait
# 搜索入口地址,以公眾為關(guān)鍵字搜索該公眾號
def get_search_result_by_keywords(sogou_search_url):
# 爬蟲(chóng)偽裝頭部設置
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'}
# 設置操作超時(shí)時(shí)長(cháng)
timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
s = requests.Session()
log(u'搜索地址為:%s' % sogou_search_url)
return s.get(sogou_search_url, headers=headers, timeout=timeout).content
# 獲得公眾號主頁(yè)地址
def get_wx_url_by_sougou_search_html(sougou_search_html):
doc = pq(sougou_search_html)
return doc('div[class=txt-box]')('p[class=tit]')('a').attr('href')
# 使用webdriver 加載公眾號主頁(yè)內容,主要是js渲染的部分
def get_selenium_js_html(url):
options = Options()
options.add_argument('-headless') # 無(wú)頭參數
driver = Chrome(executable_path='chromedriver', chrome_options=options)
wait = WebDriverWait(driver, timeout=10)
driver.get(url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
html = driver.execute_script("return document.documentElement.outerHTML")
driver.close()
return html
# 獲取公眾號文章內容
def parse_wx_articles_by_html(selenium_html):
doc = pq(selenium_html)
return doc('div[class="weui_media_box appmsg"]')
# 將獲取到的文章轉換為字典
def switch_arctiles_to_list(articles):
# 定義存貯變量
articles_list = []
i = 1
# 遍歷找到的文章,解析里面的內容
if articles:
for article in articles.items():
log(u'開(kāi)始整合(%d/%d)' % (i, len(articles)))
# 處理單個(gè)文章
articles_list.append(parse_one_article(article))
i += 1
return articles_list
# 解析單篇文章
def parse_one_article(article):
article_dict = {}
# 獲取標題
title = article('h4[class="weui_media_title"]').text().strip()
###log(u'標題是: %s' % title)
# 獲取標題對應的地址
url = 'http://mp.weixin.qq.com' + article('h4[class="weui_media_title"]').attr('hrefs')
log(u'地址為: %s' % url)
# 獲取概要內容
summary = article('.weui_media_desc').text()
log(u'文章簡(jiǎn)述: %s' % summary)
# 獲取文章發(fā)表時(shí)間
date = article('.weui_media_extra_info').text().strip()
log(u'發(fā)表時(shí)間為: %s' % date)
# 獲取封面圖片
pic = parse_cover_pic(article)
# 返回字典數據
return {
'title': title,
'url': url,
'summary': summary,
'date': date,
'pic': pic
}
# 查找封面圖片,獲取封面圖片地址
def parse_cover_pic(article):
pic = article('.weui_media_hd').attr('style')
p = re.compile(r'background-image:url\((.*?)\)')
rs = p.findall(pic)
log(u'封面圖片是:%s ' % rs[0] if len(rs) > 0 else '')
return rs[0] if len(rs) > 0 else ''
# 自定義log函數,主要是加上時(shí)間
def log(msg):
print u'%s: %s' % (time.strftime('%Y-%m-%d_%H-%M-%S'), msg)
# 驗證函數
def need_verify(selenium_html):
' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 '
return pq(selenium_html)('#verify_change').text() != ''
# 創(chuàng )建公眾號命名的文件夾
def create_dir(keywords):
if not os.path.exists(keywords):
os.makedirs(keywords)
# 爬蟲(chóng)主函數
def run(keywords):
' 爬蟲(chóng)入口函數 '
# Step 0 : 創(chuàng )建公眾號命名的文件夾
create_dir(keywords)
# 搜狐微信搜索鏈接入口
sogou_search_url = 'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=' % quote(
keywords)
# Step 1:GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
log(u'開(kāi)始獲取,微信公眾號英文名為:%s' % keywords)
log(u'開(kāi)始調用sougou搜索引擎')
sougou_search_html = get_search_result_by_keywords(sogou_search_url)
# Step 2:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
log(u'獲取sougou_search_html成功,開(kāi)始抓取公眾號對應的主頁(yè)wx_url')
wx_url = get_wx_url_by_sougou_search_html(sougou_search_html)
log(u'獲取wx_url成功,%s' % wx_url)
# Step 3:Selenium+PhantomJs獲取js異步加載渲染后的html
log(u'開(kāi)始調用selenium渲染html')
selenium_html = get_selenium_js_html(wx_url)
# Step 4: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
if need_verify(selenium_html):
log(u'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試')
else:
# Step 5: 使用PyQuery,從Step 3獲取的html中解析出公眾號文章列表的數據
log(u'調用selenium渲染html完成,開(kāi)始解析公眾號文章')
articles = parse_wx_articles_by_html(selenium_html)
log(u'抓取到微信文章%d篇' % len(articles))
# Step 6: 把微信文章數據封裝成字典的list
log(u'開(kāi)始整合微信文章數據為字典')
articles_list = switch_arctiles_to_list(articles)
return [content['title'] for content in articles_list]
```
main入口函數:
```python
# coding: utf8
import spider_weixun_by_sogou
if __name__ == '__main__':
gongzhonghao = raw_input(u'input weixin gongzhonghao:')
if not gongzhonghao:
gongzhonghao = 'spider'
text = " ".join(spider_weixun_by_sogou.run(gongzhonghao))
print text
  ````
  直接運行main方法,在控制臺輸入你要爬取的公眾號英文名,中文的搜索結果可能有多個(gè),這里只搜索一個(gè),查看英文公眾號,直接點(diǎn)擊手機打開(kāi)公眾號,然后查看公眾號信息,可以看到如下爬蟲(chóng)結果爬取到文章的相關(guān)信息,文章的具體內容可以通過(guò)調用webdriver進(jìn)行爬取。 py 在代碼中。
  ![截圖2018-08-30 17.56.09](
  
  ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  爬取公眾號注意事項
  以下三點(diǎn)是我在爬取過(guò)程中遇到的一些問(wèn)題,希望能幫助大家避開(kāi)陷阱。
  1. Selenium 對 PhantomJS 的支持已被棄用,請使用無(wú)頭版本的 Chrome 或 Firefox 代替 warnings.warn('Selenium 對 PhantomJS 的支持已被棄用,請使用 headless '
  網(wǎng)上很多文章還在使用PhantomJS。事實(shí)上,Selenium 從去年開(kāi)始就沒(méi)有支持 PhantomJS?,F在,如果你使用 Selenium 來(lái)初始化瀏覽器,你需要使用 webdriver 來(lái)初始化 Chrome 或 Firefox 驅動(dòng)程序,而不需要 head 參數。
  詳情請參考官網(wǎng)鏈接:
  2. 無(wú)法連接到Service chromedriver/firefoxdriver
  我在開(kāi)發(fā)過(guò)程中也遇到過(guò)這個(gè)坑。這個(gè)問(wèn)題一般有兩種可能。一是沒(méi)有配置chromedriver或geckodriver的環(huán)境變量。這里需要注意chromedriver或者geckodriver文件的環(huán)境變量一定要配置到PATH中,或者干脆粗暴地將這兩個(gè)文件直接復制到/usr/bin目錄下;
  還有另一種可能是未配置主機。如果你發(fā)現這個(gè)問(wèn)題,檢查你的hosts文件是否沒(méi)有配置`127.0.0.1 localhost`,只要配置好了。
  這里還有一點(diǎn)需要注意的是,如果你使用的是chrome瀏覽器,還要注意chrome瀏覽器版本和chromedriver的對應關(guān)系??梢栽谶@個(gè)文章查看或者去google官網(wǎng)查看最新對應。.
  3. 抗吸血
  微信公眾號已經(jīng)對文章中的圖片進(jìn)行了防盜鏈處理,所以如果圖片在公眾號、小程序、PC瀏覽器以外的地方無(wú)法顯示,建議您閱讀本文文章了解如何應對微信防盜鏈。
  總結
  好了,上面說(shuō)了這么多。大家最關(guān)心的是源碼。這里是github地址:,如果好用記得用str。 查看全部

  querylist采集微信公眾號文章(微信公眾號爬取方式)
  最近在做自己的一個(gè)項目,涉及到需要通過(guò)python爬取微信公眾號文章。由于微信的獨特方法,無(wú)法直接爬取。在研究了一些 文章 之后,我可能會(huì )有一個(gè)想法。而且網(wǎng)上能查到的解決方案都沒(méi)有問(wèn)題,但是里面的代碼由于一些第三方庫的改動(dòng),基本無(wú)法使用。本文章是寫(xiě)給需要爬取公眾號文章的朋友,文章最后也會(huì )提供python源碼下載。
  ##公眾號抓取方式
  爬取公眾號主要有兩種方式。一是通過(guò)搜狗搜索微信公眾號頁(yè)面找到文章地址,然后爬取具體的文章內容;注冊公眾號然后通過(guò)公眾號的搜索界面查詢(xún)文章的地址,然后根據地址爬取文章的內容。
  這兩種方案各有優(yōu)缺點(diǎn)。通過(guò)搜狗搜索做的核心思想是通過(guò)request模擬搜狗搜索公眾號,然后解析搜索結果頁(yè)面,然后根據官方主頁(yè)地址爬取文章的詳細信息帳戶(hù)。但是這里需要注意,因為搜狗和騰訊的協(xié)議,只能顯示最新的10個(gè)文章,沒(méi)有辦法獲取所有的文章。如果你想得到文章的所有朋友,你可能不得不使用第二種方法。第二種方法的缺點(diǎn)是注冊公眾號通過(guò)騰訊認證比較麻煩,通過(guò)調用接口公眾號查詢(xún)接口進(jìn)行查詢(xún),但是翻頁(yè)需要通過(guò)selenium來(lái)模擬滑動(dòng)翻頁(yè)操作,整個(gè)過(guò)程比較麻煩。因為我的項目中不需要history文章,所以我使用搜狗搜索來(lái)爬取公眾號。
  爬取最近10個(gè)公眾號文章
  python需要依賴(lài)的三方庫如下:
  urllib,pyquery,請求,硒
  具體邏輯寫(xiě)在評論里,沒(méi)有特別復雜的地方。
  爬蟲(chóng)核心類(lèi)
  ````蟒蛇
  #!/usr/bin/python
  # 編碼:utf-8
  [Python] 純文本查看
  import sys
reload(sys)
sys.setdefaultencoding('utf-8')
from urllib import quote
from pyquery import PyQuery as pq
import requests
import time
import re
import os
from selenium.webdriver import Chrome
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.wait import WebDriverWait
# 搜索入口地址,以公眾為關(guān)鍵字搜索該公眾號
def get_search_result_by_keywords(sogou_search_url):
# 爬蟲(chóng)偽裝頭部設置
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0'}
# 設置操作超時(shí)時(shí)長(cháng)
timeout = 5
# 爬蟲(chóng)模擬在一個(gè)request.session中完成
s = requests.Session()
log(u'搜索地址為:%s' % sogou_search_url)
return s.get(sogou_search_url, headers=headers, timeout=timeout).content
# 獲得公眾號主頁(yè)地址
def get_wx_url_by_sougou_search_html(sougou_search_html):
doc = pq(sougou_search_html)
return doc('div[class=txt-box]')('p[class=tit]')('a').attr('href')
# 使用webdriver 加載公眾號主頁(yè)內容,主要是js渲染的部分
def get_selenium_js_html(url):
options = Options()
options.add_argument('-headless') # 無(wú)頭參數
driver = Chrome(executable_path='chromedriver', chrome_options=options)
wait = WebDriverWait(driver, timeout=10)
driver.get(url)
time.sleep(3)
# 執行js得到整個(gè)頁(yè)面內容
html = driver.execute_script("return document.documentElement.outerHTML")
driver.close()
return html
# 獲取公眾號文章內容
def parse_wx_articles_by_html(selenium_html):
doc = pq(selenium_html)
return doc('div[class="weui_media_box appmsg"]')
# 將獲取到的文章轉換為字典
def switch_arctiles_to_list(articles):
# 定義存貯變量
articles_list = []
i = 1
# 遍歷找到的文章,解析里面的內容
if articles:
for article in articles.items():
log(u'開(kāi)始整合(%d/%d)' % (i, len(articles)))
# 處理單個(gè)文章
articles_list.append(parse_one_article(article))
i += 1
return articles_list
# 解析單篇文章
def parse_one_article(article):
article_dict = {}
# 獲取標題
title = article('h4[class="weui_media_title"]').text().strip()
###log(u'標題是: %s' % title)
# 獲取標題對應的地址
url = 'http://mp.weixin.qq.com' + article('h4[class="weui_media_title"]').attr('hrefs')
log(u'地址為: %s' % url)
# 獲取概要內容
summary = article('.weui_media_desc').text()
log(u'文章簡(jiǎn)述: %s' % summary)
# 獲取文章發(fā)表時(shí)間
date = article('.weui_media_extra_info').text().strip()
log(u'發(fā)表時(shí)間為: %s' % date)
# 獲取封面圖片
pic = parse_cover_pic(article)
# 返回字典數據
return {
'title': title,
'url': url,
'summary': summary,
'date': date,
'pic': pic
}
# 查找封面圖片,獲取封面圖片地址
def parse_cover_pic(article):
pic = article('.weui_media_hd').attr('style')
p = re.compile(r'background-image:url\((.*?)\)')
rs = p.findall(pic)
log(u'封面圖片是:%s ' % rs[0] if len(rs) > 0 else '')
return rs[0] if len(rs) > 0 else ''
# 自定義log函數,主要是加上時(shí)間
def log(msg):
print u'%s: %s' % (time.strftime('%Y-%m-%d_%H-%M-%S'), msg)
# 驗證函數
def need_verify(selenium_html):
' 有時(shí)候對方會(huì )封鎖ip,這里做一下判斷,檢測html中是否包含id=verify_change的標簽,有的話(huà),代表被重定向了,提醒過(guò)一陣子重試 '
return pq(selenium_html)('#verify_change').text() != ''
# 創(chuàng )建公眾號命名的文件夾
def create_dir(keywords):
if not os.path.exists(keywords):
os.makedirs(keywords)
# 爬蟲(chóng)主函數
def run(keywords):
' 爬蟲(chóng)入口函數 '
# Step 0 : 創(chuàng )建公眾號命名的文件夾
create_dir(keywords)
# 搜狐微信搜索鏈接入口
sogou_search_url = 'http://weixin.sogou.com/weixin?type=1&query=%s&ie=utf8&s_from=input&_sug_=n&_sug_type_=' % quote(
keywords)
# Step 1:GET請求到搜狗微信引擎,以微信公眾號英文名稱(chēng)作為查詢(xún)關(guān)鍵字
log(u'開(kāi)始獲取,微信公眾號英文名為:%s' % keywords)
log(u'開(kāi)始調用sougou搜索引擎')
sougou_search_html = get_search_result_by_keywords(sogou_search_url)
# Step 2:從搜索結果頁(yè)中解析出公眾號主頁(yè)鏈接
log(u'獲取sougou_search_html成功,開(kāi)始抓取公眾號對應的主頁(yè)wx_url')
wx_url = get_wx_url_by_sougou_search_html(sougou_search_html)
log(u'獲取wx_url成功,%s' % wx_url)
# Step 3:Selenium+PhantomJs獲取js異步加載渲染后的html
log(u'開(kāi)始調用selenium渲染html')
selenium_html = get_selenium_js_html(wx_url)
# Step 4: 檢測目標網(wǎng)站是否進(jìn)行了封鎖
if need_verify(selenium_html):
log(u'爬蟲(chóng)被目標網(wǎng)站封鎖,請稍后再試')
else:
# Step 5: 使用PyQuery,從Step 3獲取的html中解析出公眾號文章列表的數據
log(u'調用selenium渲染html完成,開(kāi)始解析公眾號文章')
articles = parse_wx_articles_by_html(selenium_html)
log(u'抓取到微信文章%d篇' % len(articles))
# Step 6: 把微信文章數據封裝成字典的list
log(u'開(kāi)始整合微信文章數據為字典')
articles_list = switch_arctiles_to_list(articles)
return [content['title'] for content in articles_list]
```
main入口函數:
```python
# coding: utf8
import spider_weixun_by_sogou
if __name__ == '__main__':
gongzhonghao = raw_input(u'input weixin gongzhonghao:')
if not gongzhonghao:
gongzhonghao = 'spider'
text = " ".join(spider_weixun_by_sogou.run(gongzhonghao))
print text
  ````
  直接運行main方法,在控制臺輸入你要爬取的公眾號英文名,中文的搜索結果可能有多個(gè),這里只搜索一個(gè),查看英文公眾號,直接點(diǎn)擊手機打開(kāi)公眾號,然后查看公眾號信息,可以看到如下爬蟲(chóng)結果爬取到文章的相關(guān)信息,文章的具體內容可以通過(guò)調用webdriver進(jìn)行爬取。 py 在代碼中。
  ![截圖2018-08-30 17.56.09](
  
  ?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
  爬取公眾號注意事項
  以下三點(diǎn)是我在爬取過(guò)程中遇到的一些問(wèn)題,希望能幫助大家避開(kāi)陷阱。
  1. Selenium 對 PhantomJS 的支持已被棄用,請使用無(wú)頭版本的 Chrome 或 Firefox 代替 warnings.warn('Selenium 對 PhantomJS 的支持已被棄用,請使用 headless '
  網(wǎng)上很多文章還在使用PhantomJS。事實(shí)上,Selenium 從去年開(kāi)始就沒(méi)有支持 PhantomJS?,F在,如果你使用 Selenium 來(lái)初始化瀏覽器,你需要使用 webdriver 來(lái)初始化 Chrome 或 Firefox 驅動(dòng)程序,而不需要 head 參數。
  詳情請參考官網(wǎng)鏈接:
  2. 無(wú)法連接到Service chromedriver/firefoxdriver
  我在開(kāi)發(fā)過(guò)程中也遇到過(guò)這個(gè)坑。這個(gè)問(wèn)題一般有兩種可能。一是沒(méi)有配置chromedriver或geckodriver的環(huán)境變量。這里需要注意chromedriver或者geckodriver文件的環(huán)境變量一定要配置到PATH中,或者干脆粗暴地將這兩個(gè)文件直接復制到/usr/bin目錄下;
  還有另一種可能是未配置主機。如果你發(fā)現這個(gè)問(wèn)題,檢查你的hosts文件是否沒(méi)有配置`127.0.0.1 localhost`,只要配置好了。
  這里還有一點(diǎn)需要注意的是,如果你使用的是chrome瀏覽器,還要注意chrome瀏覽器版本和chromedriver的對應關(guān)系??梢栽谶@個(gè)文章查看或者去google官網(wǎng)查看最新對應。.
  3. 抗吸血
  微信公眾號已經(jīng)對文章中的圖片進(jìn)行了防盜鏈處理,所以如果圖片在公眾號、小程序、PC瀏覽器以外的地方無(wú)法顯示,建議您閱讀本文文章了解如何應對微信防盜鏈。
  總結
  好了,上面說(shuō)了這么多。大家最關(guān)心的是源碼。這里是github地址:,如果好用記得用str。

querylist采集微信公眾號文章(采集微信文章和采集網(wǎng)站內容一樣的查看方法獲取到一個(gè))

采集交流 ? 優(yōu)采云 發(fā)表了文章 ? 0 個(gè)評論 ? 141 次瀏覽 ? 2022-02-19 16:16 ? 來(lái)自相關(guān)話(huà)題

  querylist采集微信公眾號文章(采集微信文章和采集網(wǎng)站內容一樣的查看方法獲取到一個(gè))
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。因此,我們需要使用anyproxy,通過(guò)上篇文章文章介紹的方法,獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  http://mp.weixin.qq.com/mp/get ... r%3D1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,我們還可以制作一個(gè)收錄密鑰和尚未過(guò)期的密鑰的程序。提交pass_ticket的鏈接地址,然后可以通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
"list": [
{
"app_msg_ext_info": {
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
"digest": "擦亮雙眼,遠離謠言。",
"fileid": 505283695,
"is_multi": 1,
"multi_app_msg_item_list": [
{
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
"digest": "12月28日,廣州亞運城綜合體育館,內附購票入口~",
"fileid": 0,
"source_url": "http://wechat.show.wepiao.com/ ... ot%3B,
"title": "2017微信公開(kāi)課Pro版即將召開(kāi)"
},
...//循環(huán)被省略
],
"source_url": "",
"subtype": 9,
"title": "謠言熱榜 | 十一月朋友圈十大謠言"
},
"comm_msg_info": {
"content": "",
"datetime": 1480933315,
"fakeid": "3093134871",
"id": 1000000010,
"status": 2,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list": [ //最外層的鍵名;只出現一次,所有內容都被它包含。
{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
"app_msg_ext_info":{//圖文消息的擴展信息
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": "摘要",
"is_multi": "是否多圖文,值為1和0",
"multi_app_msg_item_list": [//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
{
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": ""摘要"",
"source_url": "閱讀原文的地址",
"title": "子內容標題"
},
...//循環(huán)被省略
],
"source_url": "閱讀原文的地址",
"title": "頭條標題"
},
"comm_msg_info":{//圖文消息的基本信息
"datetime": &#39;發(fā)布時(shí)間,值為unix時(shí)間戳&#39;,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
  這里要提的另外一點(diǎn)是,如果要獲取較舊的歷史消息的內容,需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  現在我們可以通過(guò)公眾號的歷史消息獲取文章的列表。在下一篇文章中,我將介紹如何根據歷史新聞中文章的鏈接地址獲取文章@。&gt; 內容特定的方法。關(guān)于如何保存文章、封面圖片、全文檢索也有一些經(jīng)驗。
  持續更新,微信公眾號文章批量采集系統建設
  微信公眾號入口文章采集--歷史新聞頁(yè)面詳解
  微信公眾號文章頁(yè)面和采集分析
  提高微信公眾號文章采集的效率,anyproxy的高級使用 查看全部

  querylist采集微信公眾號文章(采集微信文章和采集網(wǎng)站內容一樣的查看方法獲取到一個(gè))
  采集微信文章和采集網(wǎng)站一樣,都需要從列表頁(yè)開(kāi)始。微信列表頁(yè)文章是公眾號查看歷史新聞的頁(yè)面?,F在網(wǎng)上其他微信采集器用搜狗搜索。采集 方法雖然簡(jiǎn)單很多,但內容并不完整。所以我們還是要從最標準最全面的公眾號歷史新聞頁(yè)面采集來(lái)。
  由于微信的限制,我們可以復制的鏈接不完整,無(wú)法在瀏覽器中打開(kāi)查看內容。因此,我們需要使用anyproxy,通過(guò)上篇文章文章介紹的方法,獲取一個(gè)完整的微信公眾號歷史消息頁(yè)面的鏈接地址。
  http://mp.weixin.qq.com/mp/get ... r%3D1
  上一篇文章中提到過(guò),biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
  因此,在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文來(lái)獲取文章歷史消息列表。如果我們想自動(dòng)分析內容,我們還可以制作一個(gè)收錄密鑰和尚未過(guò)期的密鑰的程序。提交pass_ticket的鏈接地址,然后可以通過(guò)例如php程序獲取文章列表。
  最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章文章中寫(xiě)的批處理采集方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號的所有內容鏈接地址,然后采集內容就可以了。
  在anyproxy的web界面中,如果證書(shū)配置正確,可以顯示https的內容。web界面的地址是:8002,其中localhost可以換成自己的IP地址或者域名。從列表中找到以 getmasssendmsg 開(kāi)頭的記錄。點(diǎn)擊后,右側會(huì )顯示這條記錄的詳細信息:
  
  紅框部分是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(kāi)了。
  然后將頁(yè)面下拉到html內容的最后,我們可以看到一個(gè)json變量就是文章歷史消息列表:
  
  我們復制msgList的變量值,用json格式化工具分析。我們可以看到j(luò )son有如下結構:
  {
"list": [
{
"app_msg_ext_info": {
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz/Mof ... ot%3B,
"digest": "擦亮雙眼,遠離謠言。",
"fileid": 505283695,
"is_multi": 1,
"multi_app_msg_item_list": [
{
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s%3F__ ... ot%3B,
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz_png ... ot%3B,
"digest": "12月28日,廣州亞運城綜合體育館,內附購票入口~",
"fileid": 0,
"source_url": "http://wechat.show.wepiao.com/ ... ot%3B,
"title": "2017微信公開(kāi)課Pro版即將召開(kāi)"
},
...//循環(huán)被省略
],
"source_url": "",
"subtype": 9,
"title": "謠言熱榜 | 十一月朋友圈十大謠言"
},
"comm_msg_info": {
"content": "",
"datetime": 1480933315,
"fakeid": "3093134871",
"id": 1000000010,
"status": 2,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
}
  簡(jiǎn)單分析一下這個(gè)json(這里只介紹一些重要的信息,其他的省略):
  "list": [ //最外層的鍵名;只出現一次,所有內容都被它包含。
{//這個(gè)大闊號之內是一條多圖文或單圖文消息,通俗的說(shuō)就是一天的群發(fā)都在這里
"app_msg_ext_info":{//圖文消息的擴展信息
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": "摘要",
"is_multi": "是否多圖文,值為1和0",
"multi_app_msg_item_list": [//這里面包含的是從第二條開(kāi)始的圖文消息,如果is_multi=0,這里將為空
{
"content_url": "圖文消息的鏈接地址",
"cover": "封面圖片",
"digest": ""摘要"",
"source_url": "閱讀原文的地址",
"title": "子內容標題"
},
...//循環(huán)被省略
],
"source_url": "閱讀原文的地址",
"title": "頭條標題"
},
"comm_msg_info":{//圖文消息的基本信息
"datetime": &#39;發(fā)布時(shí)間,值為unix時(shí)間戳&#39;,
"type": 49 //類(lèi)型為49的時(shí)候是圖文消息
}
},
...//循環(huán)被省略
]
  這里要提的另外一點(diǎn)是,如果要獲取較舊的歷史消息的內容,需要在手機或模擬器上下拉頁(yè)面。下拉到最底部,微信會(huì )自動(dòng)讀取下一頁(yè)。內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
  這時(shí)候可以使用上一篇文章文章介紹的方法,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode將json解析成一個(gè)來(lái)自服務(wù)器的數組。然后遍歷循環(huán)數組。我們可以得到每個(gè)文章的標題和鏈接地址。
  如果您只需要采集的單個(gè)公眾號的內容,您可以在每天群發(fā)后通過(guò)anyproxy獲取帶有key和pass_ticket的完整鏈接地址。然后自己做一個(gè)程序,手動(dòng)提交地址給自己的程序。使用php等語(yǔ)言對msgList進(jìn)行正則匹配,然后解析json。這樣就不需要修改anyproxy的規則,也不需要創(chuàng )建采集隊列和跳轉頁(yè)面。
  現在我們可以通過(guò)公眾號的歷史消息獲取文章的列表。在下一篇文章中,我將介紹如何根據歷史新聞中文章的鏈接地址獲取文章@。&gt; 內容特定的方法。關(guān)于如何保存文章、封面圖片、全文檢索也有一些經(jīng)驗。
  持續更新,微信公眾號文章批量采集系統建設
  微信公眾號入口文章采集--歷史新聞頁(yè)面詳解
  微信公眾號文章頁(yè)面和采集分析
  提高微信公眾號文章采集的效率,anyproxy的高級使用

官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

亚洲国产精品无码久久大片,亚洲AV无码乱码麻豆精品国产,亚洲品质自拍网站,少妇伦子伦精品无码STYLES,国产精久久久久久久