爬取微信公众号文章网上有两种思路,一种是基于搜狗搜索,但是这种我发现有个问题,因为它是根据搜索词的,所以你没办法指定搜索的结果只是某个公众号的,而且更大的问题是,它不是按时间排序的,所以你如果是想爬最新的就会很麻烦。而基于微信公众号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你可以再去爬点赞数这些具体数值。
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |