微博爬虫技术方案

技术选型

  • 目的:实现爬取相关微博的评论、转发、点赞等信息
  • 方案:
    • 在网上搜索了一遍后,相对觉得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
  • 在原来的基础上,加了两个服务

    • 爬虫前端服务:
      • 提供微博的实时接口,如查询等功能,这些功能因为数据量太大,就直接转向微博
      • 定时触发事件功能
    • 接口服务:
      • 多种接入协议支持,如http,ws等
      • 转发微博的实时接口,对接到爬虫前端服务
      • 这层接口更加业务化,它从数据库组织数据,发送给应用端

注意的问题

  • WeiboSpider中需要注意的问题
    • 数据库连接不支持多线程
    • 数据库连接长时间没有操作,会失去连接