用 celery+requests 撸了一个分布式微博爬虫,对 Python 数据采集有兴趣或者对微博数据采集有需求的同学可以看看,目前实现了用户信息抓取、特定话题微博搜索、用户主页所有微博抓取、指定微博所有评论抓取、指定微博所有转发抓取。四台机器大概一天可以抓 100w 条用户数据,微博可以抓上千万条。
项目地址: https://github.com/ResolveWang/WeiboSpider
求 fork & star
![]() | 1 zthxxx 2017-05-30 12:24:22 +08:00 已 star + watch |
![]() | 2 jtsai 2017-05-30 12:34:18 +08:00 via Android 顺路请假一下,一台 16g i7 的机器 做爬虫要多少网速比较适合 |
![]() | 3 resolvewang OP @zthxxx 谢谢捧场 |
![]() | 4 resolvewang OP ![]() @jtsai 你这个问题我觉得应该视具体情况而定。如果是抓文本内容的话,网速应该要不了太多,10M 独享肯定是够了,可能几兆都够了。如果抓视频或者图片等消耗 IO 的资源,那肯定是要网速越快越好咯。其实,很多时候,抓的东西都会有限制,这个时候,你会发现账号或者 ip 才是瓶颈了(对于个人开发者或者小公司而言)。 爬虫很多时候主要就是占用 IO,cpu 和内存其实依赖比较小。一台机器的话,如果不考虑代理,很容易被封 IP。考虑代理的话,代理的可用性也需要考量。额,好像偏题了...你自己多尝试吧,爬虫比较依赖外部环境,反正需要视不同情况而定 |
![]() | 5 resolvewang OP 感觉 v 站的兄弟太给力了。多谢大家捧场! |
![]() | 7 goodluck 2017-05-31 10:09:05 +08:00 已经 start + watch, 两年前弄过类似的程序,说实话微博批量抓取还是比较有难度,pc 端单账号限制很多,以前只能用 wap 端抓取了 6 亿用户的微博(单机,半年,500 个账号)。好久没弄过了,楼主 github 写得不错,看看我抓的直播平台主播的微博: http://www.yibo666.cn/livetv/weibo/?is_ori=1 |
![]() | 8 resolvewang OP @soulmine 补充一下,单是做爬虫,机器性能要求相对来说要低一些 |
![]() | 9 resolvewang OP @goodluck 感谢支持。回踩一下 |
![]() | 10 resolvewang OP @goodluck 咋感觉你这个没有登录啊?难道说不用登录也能抓?用的啥方法? |
![]() | 11 haofly 2017-05-31 14:21:55 +08:00 super,super,666 |
![]() | 12 resolvewang OP @haofly 靠,哪里都有你 |
![]() | 13 resolvewang OP @haofly 快献出你宝贵的 star |
![]() | 14 CosmoX 2017-06-01 04:13:17 +08:00 已赞! |
![]() | 15 resolvewang OP @CosmoX 谢谢支持 |
![]() | 16 haofly 2017-06-01 16:31:13 +08:00 @resolvewang 早就 start 了 |
![]() | 17 resolvewang OP @haofly 哈哈哈,识货 |
![]() | 18 xiubin 2017-06-02 09:22:34 +08:00 可以抓取一个用户所有的赞和评论吗? |
![]() | 19 resolvewang OP @xiubin 我是实现的针对给定微博,抓取它的所有评论。如果是用户的评论和赞,我没去实现。并且,好像在微博系统中,我们也看不到某个用户赞了什么和评论了什么啊 |
![]() | 20 xiubin 2017-06-02 17:35:26 +08:00 那你就不能转个弯嘛? 1. 针对某个用户,我们可以获取它关注的所有用户 2. 进而获取这些用户的所有微博 3. 针对所有微博我们可以获取所有评论 then,我们不是就可以知道是否有某个用户进行点赞和评论了吗? 是不是和你的初衷不太一致?你是要做数据采集,我是要关注女神 /偶像他们的动作。。 |
![]() | 21 resolvewang OP ![]() @xiubin 你说的前三个功能我都实现了啊,你看看项目介绍就明显可以得知啊。我说的给定微博,有两个来源,一个是搜索关键词获取,一个是通过给定用户来抓。不过有一点需要明确,不可能获取某个用户的所有关注和粉丝,只能获取前五页。确实你说的这个并不是项目的初衷,但也可以依托它较为轻松的实现 |
![]() | 22 gogobody 2017-06-06 20:43:36 +08:00 via Android 马克 |
![]() | 23 resolvewang OP @gogobody 感谢支持 |
![]() | 24 run2 2017-06-07 13:12:26 +08:00 改成 serverless 架构 ? (不知道 AWS Lambda 每次运行时会不会是不同的动态 IP ) https://github.com/Miserlou/Zappa https://github.com/awslabs/chalice 感觉爬虫和 serverless 很搭 |
![]() | 25 resolvewang OP @sobigfish serverless 没怎么了解,如果可以轻松切换弹性公网 ip,那么我觉得是非常棒的 |