This is a sina weibo spider built by scrapy
更多关于微博爬虫的介绍请移步:微博爬虫总结:构建单机千万级别的微博爬虫系统
该项目分为3个分支,以满足不同的需要
分支 | 特点 | 单机每日抓取量 |
---|---|---|
simple | 单账号 | 十万级 |
master | 账号池 | 百万级 |
senior | 账号池+分布式 | 千万级+ |
该项目爬取的数据字段说明,请移步:数据字段说明与示例
已经在senior分支的基础上新增了search分支,用于微博关键词搜索
- 2019/05/07 添加IP池的示例代码
- 2019/05/07 全面修复历史问题,增加用户的标签,评论的点赞,微博的发布平台/表情/图片/视频等新的字段
- 2018/10/13 添加微博搜索分支
- 2018/9/30 添加布隆过滤器
下面是master分支,也就是构建单机百万级的爬虫
如果你只想用你自己的一个账号简单爬取微博,每日十万级即可,请移步simple分支
如果你需要大规模爬取微博,需要单机千万级别,请移步senior分支
本项目Python版本为Python3.6
git clone git@github.com:nghuyong/WeiboSpider.git
cd WeiboSpider
pip install -r requirements.txt
除此之外,还需要安装mongodb和phantomjs,这个自行Google把
小号购买地址(访问需要翻墙): http://www.xiaohao.shop/
需要购买绑号无验证码类型的微博小号(重点!)
购买越多,sina/settings.py 中的延迟就可以越低,并发也就可以越大
将购买的账号复制到sina/account_build/account.txt
中,格式与account_sample.txt
保持一致。
python sina/account_build/login.py
运行截图:
这是你的mongodb中将多一个账号表,如下所示:
请重写fetch_proxy方法,该方法需要返回一个代理ip
scrapy crawl weibo_spider
运行截图:
导入pycharm后,也可以直接执行sina/spider/weibo_spider.py
该爬虫是示例爬虫,将爬取 人民日报 和 新华视点 的 用户信息,全部微博,每条微博的评论,还有用户关系。
可以根据你的实际需求改写示例爬虫。
一个页面可以抓取10则微博数据
下表是我的配置情况和速度测试结果
爬虫配置 | 配置值 |
---|---|
账号池大小 | 200+ |
CONCURRENT_REQUESTS | 16 |
DOWNLOAD_DELAY | 0.1s |
每分钟抓取网页量 | 250+ |
每分钟抓取数据量 | 2500+ |
总体一天抓取数据量 | 360万+ |
实际速度和你自己电脑的网速/CPU/内存有很大关系。