彼瞄 发表于 2025-6-1 18:16:06

基于微信公众号API的微信公众号爬虫

爬取微信公众号文章网上有两种思路,一种是基于搜狗搜索,但是这种我发现有个问题,因为它是根据搜索词的,所以你没办法指定搜索的结果只是某个公众号的,而且更大的问题是,它不是按时间排序的,所以你如果是想爬最新的就会很麻烦。而基于微信公众号API的方式就很好弥补了这种缺陷,但是它同时有一个问题,就是它需要的东西有一定门槛,对于没有计算机基础知识的人来说使用起来比较麻烦。
前期准备


[*]登录微信公众号
[*]在新建一个文本的时候,点击超链接选项,
[*]打开F12进入调试模式, 弹出的东西叫工作台。
[*]在弹出页面中账号选择其他账号,输入想查询的公众号,点击查询后,会出现这个公众号近期的文章。
[*]在工作台上面找到network或者网络,点击Fetch/XHR询找一个名字开头appmsgpublish的文件,然后点开。
[*]在header找到一个叫cookie的字段,复制旁边的值;在payload里面找到fakeid和token
调用API

url = "https://mp.weixin.qq.com/cgi-bin/appmsg"
cookie = "" # 你的cookie
fakeid = "" # 你想爬的公众号的fakeid
token = "" # 你获取的token

# 构造头文件,把之前获得到的cookie放进去
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36",
"Referer": "https://mp.weixin.qq.com/cgi-bin/appmsg?t=media/appmsg_edit&action=list&type=10&isMul=1&isNew=1&lang=zh_CN",
"Cookie": cookie,
"X-Requested-With": "XMLHttpRequest"
}

# 构造参数,把fakeid和token放进去
params = {
"token": token,
"lang": "zh_CN",
"f": "json",
"ajax": "1",
"action": "list_ex",
"begin": "0",# 如果想遍历,就以5为频数是调这个值
"count": "5",
"query": "",
"fakeid": fakeid, # 想查询的公众号
"type": "9",
}

# 调用
content_json = requests.post(url, headers=headers, params=params).json()# 调用完以后就可以得到对应公众号的文章调用完以后,就可以通过遍历解析这个json,主要是拿到标题和url,拿到url你可以再去爬点赞数这些具体数值。

来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
页: [1]
查看完整版本: 基于微信公众号API的微信公众号爬虫