Python|抓取微信公众号的问题

Posted 算法与编程之美

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python|抓取微信公众号的问题相关的知识,希望对你有一定的参考价值。

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

前言

对于抓取微信公众号文章主要通过代理ip抓包进行的操作,总会出现一些问题,以下问题导致无法抓包。

解决方案

微信账号无法抓包问题:

{'ret': -6, 'errmsg': 'unknownerror', 'home_page_list': []}

对于微信账号无法抓包问题,主要出现在python请求代码的问题。

当我们所get所返回到的响应内容出现'msg_count':0值时,代表当前页面所获取的文章为零,这时如果没有停止get请求,即一直发送get请求;

在发送一定次数时就会出现{'ret':-6, 'errmsg': 'unknown error', 'home_page_list': []}响应,get不到我们想要得到的数据。

我们这时会发现如果再用该微信账号去抓取其它的公众号get就会直接返回{'ret': -6, 'errmsg': 'unknown error', 'home_page_list': []}响应,猜测:此时账号被服务器识别,无法返回响应。当换了一个微信账号时,成功返回并抓到了响应的数据。故得出结论:当我们在返回值中出现'msg_count':0时,未终止程序,继续get就会出现账号无法抓取数据包的情况,期限是1天,1天后即可继续抓取。

请求发送过快

当请求发送过快时,也会导致请求响应得不到相应的数据。将sleep的时间设为1、1.5、2秒分别实验后,发现当时间设为1、1.5时,均出现了得不到响应数据的报错,只是1.5秒比1秒所得到的数据多一些。最后发现设为2秒后,没有出现得不到数据包而报错的情况。结论:将sleep=2时,即抓取每一篇文章的间隙设为2秒时,不会出现抓取过快的情况。

总结

该博客主要是讲述小编在抓取微信公众号所遇到的主要的问题,即发送请求的相关问题,希望对读者有所帮助。

实习编辑:王文星

稿件来源:深度学习与文旅应用实验室(DLETA)

以上是关于Python|抓取微信公众号的问题的主要内容,如果未能解决你的问题,请参考以下文章

微信公众号的文章爬取有三种方式

如何抓取微信所有公众号最新文章

python爬搜狗微信获取指定微信公众号的文章

在新浪SAE上搭建微信公众号的python应用

如何使用python3抓取微信公众号文章,了解一下?

[Python爬虫] 之十五:Selenium +phantomjs根据微信公众号抓取微信文章