分享一个分布式微博爬虫开源项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
resolvewang
V2EX    分享创造

分享一个分布式微博爬虫开源项目

  •  
  •   resolvewang
    ResolveWang 2017-05-30 10:34:56 +08:00 5883 次点击
    这是一个创建于 3065 天前的主题,其中的信息可能已经有所发展或是发生改变。

    用 celery+requests 撸了一个分布式微博爬虫,对 Python 数据采集有兴趣或者对微博数据采集有需求的同学可以看看,目前实现了用户信息抓取、特定话题微博搜索、用户主页所有微博抓取、指定微博所有评论抓取、指定微博所有转发抓取。四台机器大概一天可以抓 100w 条用户数据,微博可以抓上千万条。

    项目地址: https://github.com/ResolveWang/WeiboSpider

    求 fork & star

    26 条回复    2018-05-29 08:08:11 +08:00
    zthxxx
        1
    zthxxx  
       2017-05-30 12:24:22 +08:00
    已 star + watch
    jtsai
        2
    jtsai  
       2017-05-30 12:34:18 +08:00 via Android
    顺路请假一下,一台 16g i7 的机器 做爬虫要多少网速比较适合
    resolvewang
        3
    resolvewang  
    OP
       2017-05-30 12:47:02 +08:00
    @zthxxx 谢谢捧场
    resolvewang
        4
    resolvewang  
    OP
       2017-05-30 12:58:25 +08:00   1
    @jtsai 你这个问题我觉得应该视具体情况而定。如果是抓文本内容的话,网速应该要不了太多,10M 独享肯定是够了,可能几兆都够了。如果抓视频或者图片等消耗 IO 的资源,那肯定是要网速越快越好咯。其实,很多时候,抓的东西都会有限制,这个时候,你会发现账号或者 ip 才是瓶颈了(对于个人开发者或者小公司而言)。

    爬虫很多时候主要就是占用 IO,cpu 和内存其实依赖比较小。一台机器的话,如果不考虑代理,很容易被封 IP。考虑代理的话,代理的可用性也需要考量。额,好像偏题了...你自己多尝试吧,爬虫比较依赖外部环境,反正需要视不同情况而定
    resolvewang
        5
    resolvewang  
    OP
       2017-05-30 12:59:19 +08:00
    感觉 v 站的兄弟太给力了。多谢大家捧场!
    soulmine
        6
    soulmine  
       2017-05-31 00:03:56 +08:00
    @jtsai 爬虫主要看两个指标 你的 IP 个数 /账户个数 /机器个数 还有你的机器性能
    goodluck
        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
    resolvewang
        8
    resolvewang  
    OP
       2017-05-31 12:50:52 +08:00
    @soulmine 补充一下,单是做爬虫,机器性能要求相对来说要低一些
    resolvewang
        9
    resolvewang  
    OP
       2017-05-31 12:51:26 +08:00
    @goodluck 感谢支持。回踩一下
    resolvewang
        10
    resolvewang  
    OP
       2017-05-31 12:53:16 +08:00
    @goodluck 咋感觉你这个没有登录啊?难道说不用登录也能抓?用的啥方法?
    haofly
        11
    haofly  
       2017-05-31 14:21:55 +08:00
    super,super,666
    resolvewang
        12
    resolvewang  
    OP
       2017-05-31 16:22:12 +08:00
    @haofly 靠,哪里都有你
    resolvewang
        13
    resolvewang  
    OP
       2017-05-31 16:22:57 +08:00
    @haofly 快献出你宝贵的 star
    CosmoX
        14
    CosmoX  
       2017-06-01 04:13:17 +08:00
    已赞!
    resolvewang
        15
    resolvewang  
    OP
       2017-06-01 10:51:20 +08:00
    @CosmoX 谢谢支持
    haofly
        16
    haofly  
       2017-06-01 16:31:13 +08:00
    @resolvewang 早就 start 了
    resolvewang
        17
    resolvewang  
    OP
       2017-06-01 22:25:48 +08:00
    @haofly 哈哈哈,识货
    xiubin
        18
    xiubin  
       2017-06-02 09:22:34 +08:00
    可以抓取一个用户所有的赞和评论吗?
    resolvewang
        19
    resolvewang  
    OP
       2017-06-02 17:24:04 +08:00
    @xiubin 我是实现的针对给定微博,抓取它的所有评论。如果是用户的评论和赞,我没去实现。并且,好像在微博系统中,我们也看不到某个用户赞了什么和评论了什么啊
    xiubin
        20
    xiubin  
       2017-06-02 17:35:26 +08:00
    那你就不能转个弯嘛?

    1. 针对某个用户,我们可以获取它关注的所有用户
    2. 进而获取这些用户的所有微博
    3. 针对所有微博我们可以获取所有评论

    then,我们不是就可以知道是否有某个用户进行点赞和评论了吗?

    是不是和你的初衷不太一致?你是要做数据采集,我是要关注女神 /偶像他们的动作。。
    resolvewang
        21
    resolvewang  
    OP
       2017-06-03 09:58:34 +08:00 via Android   1
    @xiubin 你说的前三个功能我都实现了啊,你看看项目介绍就明显可以得知啊。我说的给定微博,有两个来源,一个是搜索关键词获取,一个是通过给定用户来抓。不过有一点需要明确,不可能获取某个用户的所有关注和粉丝,只能获取前五页。确实你说的这个并不是项目的初衷,但也可以依托它较为轻松的实现
    gogobody
        22
    gogobody  
       2017-06-06 20:43:36 +08:00 via Android
    马克
    resolvewang
        23
    resolvewang  
    OP
       2017-06-07 13:00:26 +08:00
    @gogobody 感谢支持
    run2
        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 很搭
    resolvewang
        25
    resolvewang  
    OP
       2017-06-07 16:45:53 +08:00
    @sobigfish serverless 没怎么了解,如果可以轻松切换弹性公网 ip,那么我觉得是非常棒的
    gitopen
        26
    gitopen  
       2018-05-29 08:08:11 +08:00 via Android
    @goodluck 最近有这方面的需求,就来翻 v2。好奇爬这么多数据是干嘛用的
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2955 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 13:28 PVG 21:28 LAX 06:28 JFK 09:28
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86