用 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
sobigfish 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,那么我觉得是非常棒的
|