前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >用 Python 爬微信公众号的数据

用 Python 爬微信公众号的数据

作者头像
伪君子
发布2018-04-17 15:24:13
2.1K0
发布2018-04-17 15:24:13
举报
文章被收录于专栏:伪君子的梦呓伪君子的梦呓

0 前言

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

1 环境说明

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

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

2 相关代码

2.1 搜索公众号信息
代码语言:javascript
复制
import wechatsogou  # 导入库
ws_api = wechatsogou.WechatSogouAPI()  # 初始化
print(ws_api.search_gzh('萧北月'))  #  搜索公众号

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

运行结果运行结果:

代码语言:javascript
复制
[{'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 微信公众号文章

代码如下

代码语言:javascript
复制
import wechatsogou
ws_api = wechatsogou.WechatSogouAPI()
print(ws_api.search_article('萧北月'))  # 关键词是萧北月,不是说爬我公众号的文章

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

代码语言:javascript
复制
{'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 首页热门页
代码语言:javascript
复制
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)

运行结果:

代码语言:javascript
复制
{'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 公众号最近文章
代码语言:javascript
复制
import wechatsogou
ws_api = wechatsogou.WechatSogouAPI()
print(ws_api.get_gzh_article_by_history('萧北月'))  #这次是真的爬我公众号的文章

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

代码语言:javascript
复制
{'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 关键词联想
代码语言:javascript
复制
import wechatsogou
ws_api = wechatsogou.WechatSogouAPI()
print(ws_api.get_sugg('美女'))  # 获取关键字联想词

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

3 相关说明

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

题图:Photo by Sunrise on Unsplash

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-04-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 萧北月 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0 前言
  • 1 环境说明
  • 2 相关代码
  • 3 相关说明
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档