用 Python 和 werobot进行公众号开发-2.发送及上传图片

Python016

用 Python 和 werobot进行公众号开发-2.发送及上传图片,第1张

werobot是Python进行公众号开发比较好用的库,安装及入门使用可以参考 第1节 。前面我们知道如何回复文本消息,本节中我们学习如何发送图片。

在 官网 上的文档上,我们可以看到,返回消息有多种类型,werobot提供了多个类与多种类型对应,TextReply返回的是文本,ImageReply返回的是图片。

通过百度、微信公众号开发文档,可以查到微信服务器,为上传成功的素材提供了media_id,通过开发接口成功的上传的素材,都有一个独立的media_id,这个media_id在返回开发接口时可以查看得到。

也就是说,我们上传图片,把media_id记下来,然后就可以发送图片了。

如何找到media_id呢,我们利用 微信提供的上传媒体文件调试工具 来上传图片。

使用Python爬取公众号文章主要两种方法:

微信传送门已被封杀,现存可用的是搜狗微信搜索,2013年腾讯以39.2%的持股和52.3%的投票权,成为搜狗第一大股东,2020年腾讯全资147亿收购搜狗,可以说搜狗已是腾讯的样子,而自2013年开始搜狗搜索就接入了微信公众号数据,因此实际上也能看做第一方的搜索接口。

域名: https://weixin.sogou.com/

可以直接搜索公众号或文章关键字获取数据,但是此方法有个比较大的问题,只能搜索公众号内容,而很多公众号其实是服务号,服务号使用此方法是搜索不到任何数据的,因此需要另一种方式进行爬取。

这个接口无法匿名访问,因此需要注册一个公众号进行操作

具体操作步骤:登录微信公众号,首页选择创作 图文消息 ,在编辑工具栏找到 超链接 ,在公众号一栏 选择其他公众号 ,之后输入需要获取的公众号名字进行搜索就会出现相匹配的公众号列表,最后点击所需公众号,就会以时间倒序方式显示具体文章列表,如下图:

返回数据格式,如下图:

爬取原理基本就结束了,具体接口分析过程较为简单就不列了。

由于微信公众平台登录验证较为严格,登陆时还需要进行收集扫码确认,因此确认最终使用 selenium 自动化进行登录获取 cookies 及 token 的工作,访问接口则使用 requests ,而因为详细文章数据是js动态加载出来,因此在这里依然选择通过 selenium 自动化获取页面,之后就可以通过xpath等方法获得文章内容。

资料查询中有网友称,此接口有访问频次限制,最少的出现过爬200篇文章就被封的现象,因此频率最好尽可能设置一个较大范围的随机数,且控制频率不要过多,代理无用,因为你是需要登录进行操作的。[手动狗头]

源码我想着放上来太长了,如需请留言。