关于如何采集微信公众号历史信息页面的详细说明
优采云 发布时间: 2020-08-08 21:40我向您介绍了如何在微信公众号文章采集的进入历史消息页面上获取信息. 有需要的朋友可以参考此内容.
采集微信文章与采集网站内容相同. 您需要从列表页面开始. 而微信文章的列表页面是官方账户的浏览历史页面. 互联网上的其他一些微信采集器现在使用搜狗进行搜索. 尽管采集方法要简单得多,但是内容并不完整. 因此,我们仍然必须从官方帐户的最标准,最全面的历史信息页面中进行采集.
由于微信的限制,我们可以复制到的链接不完整,并且无法在浏览器中打开内容. 因此,我们需要使用anyproxy通过上一篇文章介绍的方法来获取完整的微信官方帐户历史记录消息页面的链接地址.
%2BBoEMdPDBtOun1F%2F9ENSz&wx_header = 1
如前一篇文章所述,biz参数是官方帐户的ID,而uin是用户的ID. 目前,uin是所有正式帐户中唯一的帐户. 另外两个重要参数key和pass_ticket是微信客户端上的补充参数.
因此,在该地址无效之前,我们可以通过在浏览器中查看原创文本来获取历史新闻报道的列表. 如果要自动分析内容,我们还可以使用尚未过期的key和pass_ticket编写程序. 提交链接地址,然后例如通过php程序获取文章列表.
最近,一个朋友告诉我,他的收款目标是一个官方帐户. 我认为没有必要使用上一篇文章中介绍的批量采集方法. 因此,让我们看一下如何在历史新闻页面中获取文章列表. 通过分析文章列表,我们可以获得该官方帐户的所有内容链接地址,然后采集内容.
如果在anyproxy的Web界面中正确配置了证书,则可以显示https的内容. Web界面的地址为: 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规则,也无需创建采集队列和跳转页面.