querylist采集微信公眾號文章(采集微信文章和采集網(wǎng)站內容一樣的查看方法獲取到一個(gè))
優(yōu)采云 發(fā)布時(shí)間: 2022-04-20 19:18querylist采集微信公眾號文章(采集微信文章和采集網(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/getmasssendmsg?__biz=MjM5NDAwMTA2MA==&uin=NzM4MTk1ODgx&key=bf9387c4d02682e186a298a18276d8e0555e3ab51d81ca46de339e6082eb767343bef610edd80c9e1bfda66c2b62751511f7cc091a33a029709e94f0d1604e11220fc099a27b2e2d29db75cc0849d4bf&devicetype=android-17&version=26031c34&lang=zh_CN&nettype=WIFI&ascene=3&pass_ticket=Iox5ZdpRhrSxGYEeopVJwTBP7kZj51GYyEL24AT5Zyx%2BBoEMdPDBtOun1F%2F9ENSz&wx_header=1
上一篇文章中提到,biz參數是公眾號的ID,uin是用戶(hù)的ID。目前,uin在所有公眾號中都是獨一無(wú)二的。另外兩個(gè)重要參數key和pass_ticket是微信客戶(hù)端的補充參數。
所以在這個(gè)地址過(guò)期之前,我們可以通過(guò)在瀏覽器中查看原文得到文章歷史消息列表。如果您想自動(dòng)分析內容,您還可以制作一個(gè)程序來(lái)添加尚未過(guò)期的消息。提交pass_ticket的key和鏈接地址,然后通過(guò)例如php程序獲取文章列表。
最近有朋友告訴我,他的采集目標是一個(gè)公眾號。我認為沒(méi)有必要使用上一篇文章 文章 中寫(xiě)的批處理 采集 方法。那么我們來(lái)看看歷史新聞頁(yè)面是如何獲取文章列表的。通過(guò)分析文章列表,我們可以得到這個(gè)公眾號所有的內容鏈接地址,然后采集內容就可以了。
如果在anyproxy的web界面中正確配置了證書(shū),可以顯示https的內容。 Web 界面的地址是 localhost:8002,其中 localhost 可以替換為您自己的 IP 地址或域名。從列表中找到以getmasssendmsg開(kāi)頭的記錄,點(diǎn)擊右側顯示該記錄的詳細信息:
紅框是完整的鏈接地址。前面拼接好微信公眾平臺的域名后,就可以在瀏覽器中打開(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?__biz=MzA5MzEzNDg3MQ==&mid=2652767427&idx=1&sn=37da0d7208283bf90e9a4a536e0af0ea&chksm=8b882dbbbcffa4ad2f0b8a141cc988d16bace564274018e68e5c53ee6f354f8ad56c9b98bade&scene=4#wechat_redirect",
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz/MofBAcBsJ6X0xGrQ2XK5yQjzwb2eswxkRNBTgLtcqGziaFqwibzvtZAHCDkMeJU1fGZHpjoeibanPJ8rziaq68Akkg/0?wx_fmt=jpeg",
"digest": "擦亮雙眼,遠離謠言。",
"fileid": 505283695,
"is_multi": 1,
"multi_app_msg_item_list": [
{
"author": "",
"content": "",
"content_url": "http://mp.weixin.qq.com/s?__biz=MzA5MzEzNDg3MQ==&mid=2652767427&idx=2&sn=449ef1a874a37fed2429e14f724b56ef&chksm=8b882dbbbcffa4ade48a7932cda4263687e34fca8ea3a5a6233d2589d448b9f6130d3890ce93&scene=4#wechat_redirect",
"copyright_stat": 100,
"cover": "http://mmbiz.qpic.cn/mmbiz_png/MofBAcBsJ6XyaIn0qEDSSicBUBZbMYHYrhibia89ZnksCsUiaia2TLI1fyqjclibGa1hw3icP6oXeSpaWMjiabaghHl7yw/0?wx_fmt=png",
"digest": "12月28日,廣州亞運城綜合體育館,內附購票入口~",
"fileid": 0,
"source_url": "http://wechat.show.wepiao.com/detail/ff764b0731b7465db03b56b998e1f2b8?detailReferrer=1&from=groupmessage&isappinstalled=0",
"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)被省略
]
}
對這個(gè)json的簡(jiǎn)單分析(這里只介紹一些重要的信息,其他的省略):
"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)被省略
]
這里還要提一提的是,如果要獲取時(shí)間較長(cháng)的歷史消息內容,需要在手機或模擬器上下拉頁(yè)面。下拉到最底,微信會(huì )自動(dòng)讀取。下一頁(yè)的內容。下一頁(yè)的鏈接地址和歷史消息頁(yè)的鏈接地址也是getmasssendmsg開(kāi)頭的地址。但是內容只有json,沒(méi)有html。直接解析json就好了。
這時(shí)候可以使用上篇文章中介紹的方法文章,使用anyproxy定時(shí)匹配msgList變量的值,異步提交給服務(wù)器,然后使用php的json_decode解析json 到服務(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ò)公眾號的歷史消息來(lái)獲取文章的列表。在下一篇文章中,我會(huì )根據歷史新聞中文章的鏈接地址來(lái)介紹如何獲取。 @文章具體內容的方法。關(guān)于文章的保存、封面圖、全文檢索也有一些經(jīng)驗。
如果您覺(jué)得我寫(xiě)的不清楚,或者有什么不明白的地方,請在下方留言?;蛘唑}擾微信號崔金,如果你覺(jué)得不錯,就點(diǎn)個(gè)贊吧。
持續更新,微信公眾號文章批量采集系統搭建
微信公眾號入口文章采集--歷史新聞頁(yè)面詳解
分析微信公眾號文章頁(yè)面和采集
提高微信公眾號的效率文章采集,anyproxy的高級使用