专栏首页伪君子的梦呓用 Python 爬微信公众号的数据

用 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)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 网络安全实验室(基础关) writeup~下

    题目都来自这里:http://hackinglab.cn/ShowQues.php?type=bases

    伪君子
  • 华氏温度转摄氏温度~ C++ 做法

    题目链接:http://www.dotcpp.com/oj/problem1005.html

    伪君子
  • 把网页制作成 Chrome App

    在即刻看见了一篇文章,内容是关于把网页制作成一个桌面应用,试了一下,感觉挺好的。干脆写一篇文章记录一下,感觉美滋滋~

    伪君子
  • python 并发 ThreadPool

    ThreadPoolExecutor和ProcessPoolExecutor ,一个线程池,一个进程池.

    py3study
  • 分享5个网址二维码API接口

    它们只需要填写好网址就能自动生成二维码,分别来自与bshare和jiathis分享工具中,如您需要就把下面的二维码生成API接口复制到你需要地方。

    空木白博客
  • 爬虫性能相关

    这里我们通过请求网页例子来一步步理解爬虫性能 当我们有一个列表存放了一些url需要我们获取相关数据,我们首先想到的是循环 简单的循环串行 这一种方法相对来说是最...

    coders
  • 学习的最好方式,就是应用

    image.png ---学习并不需要很多教程 人都要进步,都要向上,但路径并不十分清晰,这时需要更宽的视野,更多的勇气,从哪来?书籍,博客,网络,指南,视...

    web前端教室
  • 腾讯企点出席云汉芯城“数智•未来”专题研讨会

    ? ▲“数智•未来”专题研讨会现场 2020年1月5日,电子产业服务平台“云汉芯城”在上海举办“数智•未来”专题研讨会,腾讯企点、上海交通大学计算机系与人工智...

    腾讯企点
  • Spring Cloud Config对特殊字符加密的处理

    之前写过一篇关于配置中心对配置内容加密解密的介绍:《Spring Cloud构建微服务架构:分布式配置中心(加密解密)》。在这篇文章中,存在一个问题:当被加密内...

    程序猿DD
  • 【答疑释惑】JavaScript解释器是干什么用的?

    问题: ? JavaScript解释器主要是干什么用的?他不是一门语言吗? 解答: JavaScript是一门脚本语言,是需要被别人解释执行的,这个别人就是Ja...

    程序员互动联盟

扫码关注云+社区

领取腾讯云代金券