背景介绍:
从四月份开始接触微信爬虫,到今天正式将数据导入线上数据库,历时三个多月。虽然中间有其它工作安排进来,但这期间,微信文章爬取一事始终放在心上。爬取内容,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
以上是几个主要问题,在实际开发中还有很多细节问题,由于代码还不够成熟,暂未开源,项目会继续改进,时机成熟会考虑将项目开源
网友评论