007-9512

用 Python 爬取微信公众号推送文章

2018-07-18  本文已影响225人  万事皆成

背景介绍:

从四月份开始接触微信爬虫,到今天正式将数据导入线上数据库,历时三个多月。虽然中间有其它工作安排进来,但这期间,微信文章爬取一事始终放在心上。爬取内容,130 个与区块链相关的微信公众号的实时推送文章

在解决这些问题的过程中,花了不少时间和精力,但确实感觉长进不少。记录下爬取文章过程中遇到的几个大问题及解决方法

整体框架:

微信机器人框架 ItChat
爬虫框架 Scrapy
无头浏览器 PhantomJS

爬取流程

1.使用 ItChat 获取微信链接

2.Scrapy 爬取内容

3.MongoDB存储数据,图片存七牛

流程图:

image

注意:

微信号是个大问题,必须要能登录网页版微信的微信号,并且要常用的,不然很容易被封

具体问题:

1.怎么获取微信文章的链接

使用 xml.etree.ElementTree 解析 xml 获取 图片和 url

2.怎么将链接传到爬虫项目并启动爬虫

将爬虫部署在 Scrapyd,用 schedule.json 设置参数启动

3.怎么确保程序不退出

在 while(True) 里面执行微信登录

4.怎么获取微信文章的发布时间(由于最近微信文章改版,需要点击时间后才能显示年月日)

使用 Selenium 和 PhantomJS 模拟点击操作

5.怎么生成一键关住微信公众号的链接

从微信号文章里获取 biz (手动获取),生成链接 https://mp.weixin.qq.com/mp/profile_ext?action=home&__biz=MjM5MTc3MDcwNw==#wechat_redirect

以上是几个主要问题,在实际开发中还有很多细节问题,由于代码还不够成熟,暂未开源,项目会继续改进,时机成熟会考虑将项目开源

上一篇 下一篇

猜你喜欢

热点阅读