V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
resolvewang
V2EX  ›  分享创造

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

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

    用 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 感谢支持
    sobigfish
        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 很搭
    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   ·   实用小工具   ·   1660 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 16:53 · PVG 00:53 · LAX 08:53 · JFK 11:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.