用 Python 爬微信公众号的数据

0 前言

最近想搞一点秘密的小东西,然后就发现了一个非常有用的库 wechatsogou,听个名字你就大概能猜出是什么来的了,基于搜狗微信搜索的微信公众号爬虫接口,有了这个就可以玩起来了。

1 环境说明

Win10 系统下 Python3,编译器是 Pycharm,需要安装 wechatsogou 这个库

这里只介绍 Pycharm 安装第三方包的方法。

2 相关代码

2.1 搜索公众号信息

import wechatsogou  # 导入库
ws_api = wechatsogou.WechatSogouAPI()  # 初始化
print(ws_api.search_gzh('萧北月'))  #  搜索公众号

代码运行后会显示一个验证码,自己人工识别一下,再把验证码输入到please input code:后面就行(6个字符的是搜狗的验证码,4个字符的是微信的验证码)

运行结果运行结果:

[{'open_id': 'oIWsFt_dPYnbltzh3qPwi3J7XqJQ',
 'profile_url': 'http://mp.weixin.qq.com/profile?src=3&timestamp=1523616541&ver=1&signature=9yFqnyyzkqK3sQAV6KIW9OTb4BXx0lLrKzpdUHK6A5XaTmAtB8TeoKTM7vdE89u5adoYWw2OcQleRlMtOF7rw==', 
'headimage': 'http://img01.sogoucdn.com/app/a/100520090/oIWsFt_dPYnbltzh3qPwi3J7XqJQ', 
'wechat_name': '萧北月', 'wechat_id': 'beiyue_lbj', 
'qrcode': 'http://mp.weixin.qq.com/rr?src=3×tamp=1523616541&ver=1&signature=WVOGii0G4xYwtQWrMW5Ha2ufILN0pB992K5zAIhSiWXOh8Nd0HOoliGVjm5eIla0sPZ5YW7QvzMAwrVsB2UjPnNGFk4UwDB6kDGNbP4k=', 
'introduction': '分享我的所思所想,也分享实用又有趣的东西', 
'authentication': '\n', 'post_perm': -1, 'view_perm': -1}]

把 profile_url 是最近10条群发页链接,把后链接复制到浏览器打开,可以看见下面这样的东西。

是的,就是历史消息,仔细一看就能发现只有 10 条历史消息。链接是临时链接,也就是说,这个链接会失效,具体时间我没仔细测试一下。

headimage 就是我公众号的头像;wechat_id 是我公众号的微信 id;qrcode 是公众号二维码的链接;introduction 是公众号简介,或者说是功能介绍;

authentication 是认证,个人认证就是这样;post_perm 是最近一月群发数;view_perm 是最近一月阅读量。

'introduction': '党委中心组时政、理论学习、管理、交流平台', 'authentication': '中国共产党四川省委员会讲师团', 'post_perm': 121, 'view_perm': 48}

抱歉了,某公众号的运营团队,用你们的数据说说话

2.2 微信公众号文章

代码如下

import wechatsogou
ws_api = wechatsogou.WechatSogouAPI()
print(ws_api.search_article('萧北月'))  # 关键词是萧北月,不是说爬我公众号的文章

运行结果是一大堆的东西,,这里只能爬取一部分的文章

{'article': {'title': '用Python 制作微信好友个性签名词云图', 
'url': 'http://mp.weixin.qq.com/s?src=11&timestamp=1523618973&ver=814&signature=vBZrfexBBbHDqRnEJyMsdimKvg8fJoyg8ca1iZKYUdw63s6kNtkI1H-0hz0glHvQhGKKYMntSPsm8YbqIrpnC4F3-cKLbjBZxtlFTdLEiP7NlQLpX8ZntMWOpXoWJ&new=1', 
'imgs': ['http://img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http://mmbiz.qpic.cn/mmbiz_jpg/Wz5hZDg47G3skibMYwMeVYxTl3vSNbdBXAib3FqhUMKtq8VUF5T0Rlib4iaHww8eLc7Xib0XtJrfVxbqPYzFuwKxttQ/0?wx_fmt=jpeg'], 
'abstract': '4.相关说明参考链接:http://blog.csdn.net/Lee20093905/article/details/79052795萧北月beiyue_lbj', 
'time': 1521553773}, 
'gzh': {'profile_url': 'http://mp.weixin.qq.com/profile?src=3×tamp=1523618973&ver=1&signature=9yFqnyyzkqK3sQAV6KIW9OTb4BXx0lLrKzpdUHK6A5XaTmAtB8TeoKTM7vdE89uWk1krt44mHni8OuheHFg==', 
'headimage': 'http://wx.qlogo.cn/mmhead/Q3auHgzwzM5RZypia1GRRNpCEFqFdc50eDT4ADqDbbtibAm3embortYA/0', 
'wechat_name': '萧北月', 'isv': 0}}

isv :是否加 v,只能是 1 或 0。1 就是加 v,0 就是没有。

2.3 首页热门页

from pprint import pprint
from wechatsogou import WechatSogouAPI, WechatSogouConst
ws_api = WechatSogouAPI()
gzh_articles = ws_api.get_gzh_article_by_hot(WechatSogouConst.hot_index.food)
for i in gzh_articles:
    pprint(i)

运行结果:

{'article': {'abstract': '最近很多小伙伴向小编吐槽:怎么最近时间过得这么快?似乎刚刚过完年开学才没几天,嗖的一下就快期中考试了。高三狗,自从进入3月,就感觉时间像上了发条的时钟一样,不知不觉加快了,只剩下两个月,该咋办呀?下学期为什么有这么多考试?!快考糊了!怎么办',
            'main_img': 'http://img01.sogoucdn.com/net/a/04/link?appid=100520033&url=http%3A%2F%2Fmmbiz.qpic.cn%2Fmmbiz_jpg%2F0oVicD6cYHuGN2NpoWgNed6AzUsP0kukbx7zy57F8EWoATvhwvNp0e060sGACINVliaQtKZWDFhTQWbIAAV4iaibfA%2F0%3Fwx_fmt%3Djpeg',
            'open_id': 'oIWsFt_2q1cK2d6Yvp44XKZ-tnIQ',
            'time': 1523616378,
            'title': '史上最短下学期,考试接二连三!快被考糊的学生该怎么办?',
            'url': 'http://mp.weixin.qq.com/s?src=11&timestamp=1523619725&ver=814&signature=pP52bN2UflHFFApeiYSOwi-ytTCETF*jdMKnykZM76QTUDylYKtAQlq1rzyVr2VdiIf7oQQSxbZ9cXc45mmrtmSAbwegWucocQBr9T0WfoSTNxpYPBZ2SZ8diiQOOJUG&new=1'},
'gzh': {'headimage': 'http://img04.sogoucdn.com/app/a/100520090/oIWsFt_2q1cK2d6Yvp44XKZ-tnIQ',
        'wechat_name': '中华资源库'}}

2.4 公众号最近文章

import wechatsogou
ws_api = wechatsogou.WechatSogouAPI()
print(ws_api.get_gzh_article_by_history('萧北月'))  #这次是真的爬我公众号的文章

这里只能爬最近 10 篇的文章,不过也足够了。

{'gzh': {'wechat_name': '萧北月', 'wechat_id': 'beiyue_lbj', 'introduction': '分享我的所思所想,也分享实用又有趣的东西', 'authentication': '分享我的所思所想,也分享实用又有趣的东西', 'headimage': 'http://wx.qlogo.cn/mmhead/Q3auHgzwzM5RZypia1GRRNpCEFqFdc50eDT4ADqDbbtibAm3embortYA/0'},
'article': [{'send_id': 1000000020, 'datetime': 1523019431, 'type': '49', 'main': 1, 
'title': '使用 Python 伪造数据', 'abstract': '真真假假,假假真真', 'fileid': 100000203, 
'content_url': 'http://mp.weixin.qq.com/s?timestamp=1523621534&src=3&ver=1&signature=opv39vxOL922oluCYH8yziQFqKCpCpXToynePDglJpOXIBfFy8GHUzmr6g9zZhxcdImimyts8JgLsSWJ0z5TnQpeHkpt9pfSDvtM5e3ak9ZVyEnq356ORsDA8p3-fsF67-TNZcoAi178tyVVauFctqphpsn7igxPcQbponoi4=', 
'source_url': 'https://github.com/joke2k/faker', 'cover': 
'http://mmbiz.qpic.cn/mmbiz_jpg/Wz5hZDg47G3LckVXsS41ibb19AoOShI8S4DJOocPHbKpDSN3Btt0KUFoPmacdIpibLUWlxw9Omm9XVeEJsiaWrOCA/0?wx_fmt=jpeg', 
'author': '伪君子', 'copyright_stat': 11},

如果没猜错,send_id 就是发的第几篇文章;datetime 我没看透,不知道 10 位时间戳是什么意思; type 是消息类型,网页端最近10条消息页只有49,表示图文消息;

main 是群发的第几条消息,1 是第一条;content_url 是文章链接;source_url 是原文链接;copyright_stat 表示是否原创,11是原创。

2.5 关键词联想

import wechatsogou
ws_api = wechatsogou.WechatSogouAPI()
print(ws_api.get_sugg('美女'))  # 获取关键字联想词

分别试试美女,谷歌,腾讯,结果还行。

3 相关说明

WechatSogou 的说明文档:https://github.com/Chyroc/WechatSogou (点击原文链接也可以访问)

题图:Photo by Sunrise on Unsplash

原文发布于微信公众号 - 萧北月(beiyue_lbj)

原文发表时间:2018-04-13

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏工作随笔

改VB.NET“偷懒”技巧

【开篇胡侃】虽然搞软件开发很多年了,但似乎从没有动手写过什么(很丢脸的感觉),因为,我的精力都献给了我的其他爱好,比如健身、美食、旅游等等,反而把自己最该专注的...

31113
来自专栏牛客网

(19实习)51信用卡Java面经51信用卡、

1673
来自专栏Timhbw博客

Mac必备软件(3)-程序猿从入门到日常

2016-07-3018:40:21 发表评论 1,125℃热度 Alfred 3 欧路词典 Mou GitBook 网易云音乐 BBEdit ...

4045
来自专栏Flutter入门到实战

开发工具总结(7)之多年珍藏的Android开发必备网站和工具

版权声明:本文为博主原创文章,未经博主允许不得转载。https://www.jianshu.com/p/781c1b56bc5b

4772
来自专栏13blog.site

短信发送接口被恶意访问的网络攻击事件(四)完结篇--搭建WAF清理战场

作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载。 前言 短信发送接口...

3966
来自专栏云市场·精选汇

如果你在做小程序,千万别做这 3 件蠢事

之前在日本旅行的时候,发现进站口的闸门都是开着的,心想难道不刷卡也能进去吗?一时不解。后来亲身经历后才恍然大悟。

5491
来自专栏快乐八哥

Java Web开发学习之路2012版

2011年自己根据当时实习的经验和大学学习Java的感受,写了一篇《Java Web学习之路》,地址是:http://blog.renren.com/blog/...

22010
来自专栏IT派

从Uber到LinkedIn,聪明人都在用​Node.js

Node.js 8已经发布了,NPM模块每周下载量早已超过10亿,从Uber到LinkedIn都在使用Node.js,谁说JavaScript不能写后台?

1560
来自专栏FreeBuf

如何真正成为一个在路上的Linuxer

Linux是工具,更像一个信仰。 写在前面 本文目的不是教你如何成为一个真正的Linuxer,也没有能力教你成为一个真正的linuxer,而是通过笔者的一些想法...

3238
来自专栏北京马哥教育

海量的超赞 Linux 软件

1.1K4

扫码关注云+社区

领取腾讯云代金券