技术选型
- 目的:实现爬取相关微博的评论、转发、点赞等信息
- 方案:
- 在网上搜索了一遍后,相对觉得python比较好用。现存的解决方案多,实现爬虫开发速度快,且开源项目也多,但大多数都是娱乐性质的
- 又找了一遍后,觉得WeiboSpider这个项目相对可以商业化,就基于这个项目来实现吧
- WeiboSpider使用到的工具:python3.5、mysql、redis
技术架构
原WeiboSpider架构,主要使用技术celery库,分成三个部分
- 使用定时器触发事件:如每隔20小时登录一次,每隔5分钟执行一次抓取评论、抓发和点赞信息,定时器有以下2中方法
- crontab,定时调用下python脚本
- 使用celery功能,如”celery beat -A tasks.workers -l info”
- 使用celery爬取微博:celery会把触发事件插入到redis,celery开启工作线程执行爬取
- “celery -A tasks.workers -l info”
- 工作线程把爬取的内容插入到数据库,目前使用的是mysql
- 使用定时器触发事件:如每隔20小时登录一次,每隔5分钟执行一次抓取评论、抓发和点赞信息,定时器有以下2中方法
在原来的基础上,加了两个服务
- 爬虫前端服务:
- 提供微博的实时接口,如查询等功能,这些功能因为数据量太大,就直接转向微博
- 定时触发事件功能
- 接口服务:
- 多种接入协议支持,如http,ws等
- 转发微博的实时接口,对接到爬虫前端服务
- 这层接口更加业务化,它从数据库组织数据,发送给应用端
- 爬虫前端服务:
注意的问题
- WeiboSpider中需要注意的问题
- 数据库连接不支持多线程
- 数据库连接长时间没有操作,会失去连接