querylist采集微信公众号文章(采集微信文章和采集网站内容一样的查看方法获取到一个)
优采云 发布时间: 2022-04-20 19:18querylist采集微信公众号文章(采集微信文章和采集网站内容一样的查看方法获取到一个)
采集微信文章与采集网站内容相同,都需要从列表页开始。微信列表页文章是公众号查看历史新闻的页面。现在网上其他微信采集器用搜狗搜索。 采集 方法虽然简单很多,但内容并不完整。所以我们还是要从最标准最全面的公众号历史新闻页面来采集。
由于微信的限制,我们可以复制的链接不完整,无法在浏览器中打开查看内容。因此,我们需要使用anyproxy,通过上篇文章文章介绍的方法,获取一个完整的微信公众号历史消息页的链接地址。
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是用户的ID。目前,uin在所有公众号中都是独一无二的。另外两个重要参数key和pass_ticket是微信客户端的补充参数。
所以在这个地址过期之前,我们可以通过在浏览器中查看原文得到文章历史消息列表。如果您想自动分析内容,您还可以制作一个程序来添加尚未过期的消息。提交pass_ticket的key和链接地址,然后通过例如php程序获取文章列表。
最近有朋友告诉我,他的采集目标是一个公众号。我认为没有必要使用上一篇文章 文章 中写的批处理 采集 方法。那么我们来看看历史新闻页面是如何获取文章列表的。通过分析文章列表,我们可以得到这个公众号所有的内容链接地址,然后采集内容就可以了。
如果在anyproxy的web界面中正确配置了证书,可以显示https的内容。 Web 界面的地址是 localhost:8002,其中 localhost 可以替换为您自己的 IP 地址或域名。从列表中找到以getmasssendmsg开头的记录,点击右侧显示该记录的详细信息:
红框是完整的链接地址。前面拼接好微信公众平台的域名后,就可以在浏览器中打开了。
然后将页面下拉到html内容的末尾,我们可以看到一个json变量就是文章历史消息列表:
我们复制msgList的变量值,用json格式化工具分析。我们可以看到json有如下结构:
{
"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微信公开课Pro版即将召开"
},
...//循环被省略
],
"source_url": "",
"subtype": 9,
"title": "谣言热榜 | 十一月朋友圈十大谣言"
},
"comm_msg_info": {
"content": "",
"datetime": 1480933315,
"fakeid": "3093134871",
"id": 1000000010,
"status": 2,
"type": 49 //类型为49的时候是图文消息
}
},
...//循环被省略
]
}
对这个json的简单分析(这里只介绍一些重要的信息,其他的省略):
"list": [ //最外层的键名;只出现一次,所有内容都被它包含。
{
//这个大阔号之内是一条多图文或单图文消息,通俗的说就是一天的群发都在这里
"app_msg_ext_info":{
//图文消息的扩展信息
"content_url": "图文消息的链接地址",
"cover": "封面图片",
"digest": "摘要",
"is_multi": "是否多图文,值为1和0",
"multi_app_msg_item_list": [//这里面包含的是从第二条开始的图文消息,如果is_multi=0,这里将为空
{
"content_url": "图文消息的链接地址",
"cover": "封面图片",
"digest": ""摘要"",
"source_url": "阅读原文的地址",
"title": "子内容标题"
},
...//循环被省略
],
"source_url": "阅读原文的地址",
"title": "头条标题"
},
"comm_msg_info":{
//图文消息的基本信息
"datetime": '发布时间,值为unix时间戳',
"type": 49 //类型为49的时候是图文消息
}
},
...//循环被省略
]
这里还要提一提的是,如果要获取时间较长的历史消息内容,需要在手机或模拟器上下拉页面。下拉到最底,微信会自动读取。下一页的内容。下一页的链接地址和历史消息页的链接地址也是getmasssendmsg开头的地址。但是内容只有json,没有html。直接解析json就好了。
这时候可以使用上篇文章中介绍的方法文章,使用anyproxy定时匹配msgList变量的值,异步提交给服务器,然后使用php的json_decode解析json 到服务器的数组中。然后遍历循环数组。我们可以得到每个文章的标题和链接地址。
如果你只需要采集单个公众号的内容,可以每天群发后通过anyproxy获取完整的链接地址和key和pass_ticket。然后自己做一个程序,手动提交地址给自己的程序。使用php等语言对msgList进行正则匹配,然后解析json。这样就不需要修改anyproxy的规则,也不需要创建采集队列和跳转页面。
现在我们可以通过公众号的历史消息来获取文章的列表。在下一篇文章中,我会根据历史新闻中文章的链接地址来介绍如何获取。 @文章具体内容的方法。关于文章的保存、封面图、全文检索也有一些经验。
如果您觉得我写的不清楚,或者有什么不明白的地方,请在下方留言。或者骚扰微信号崔金,如果你觉得不错,就点个赞吧。
持续更新,微信公众号文章批量采集系统搭建
微信公众号入口文章采集--历史新闻页面详解
分析微信公众号文章页面和采集
提高微信公众号的效率文章采集,anyproxy的高级使用