V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
这是一个专门讨论 idea 的地方。

每个人的时间,资源是有限的,有的时候你或许能够想到很多 idea,但是由于现实的限制,却并不是所有的 idea 都能够成为现实。

那这个时候,不妨可以把那些 idea 分享出来,启发别人。
imcj
V2EX  ›  奇思妙想

想要弄一个 github 的爬虫,然后开放爬到的 github 数据

  •  
  •   imcj · 2016-12-16 16:37:39 +08:00 via iPhone · 6154 次点击
    这是一个创建于 2659 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想到的可以爬到的内容有 git 仓库信息、会员信息。

    今天突发奇想,想分析各种库的引用情况。
    31 条回复    2016-12-26 22:54:28 +08:00
    JoyNeop
        1
    JoyNeop  
       2016-12-16 16:58:49 +08:00
    曾经有个 GitHunt ,现在可以用 zaoshu.io 搞一个。。。(强插广告手动滑稽
    imcj
        2
    imcj  
    OP
       2016-12-16 17:33:10 +08:00 via iPhone
    @JoyNeop 没有 google 到相关的链接。 zaoshu 是您的产品?
    DoraJDJ
        3
    DoraJDJ  
       2016-12-16 17:48:48 +08:00 via Android
    直接用 GitHub 的 API 不行吗?
    bazingaterry
        4
    bazingaterry  
       2016-12-16 17:53:22 +08:00 via iPhone
    自己爬自己,噢,无限递归 😯
    upczww
        5
    upczww  
       2016-12-16 17:55:31 +08:00 via Android
    有 api
    imcj
        6
    imcj  
    OP
       2016-12-16 18:06:36 +08:00 via iPhone
    @DoraJDJ 允许频次不够用。

    另外我都想法只开发数据库只读权限
    imcj
        7
    imcj  
    OP
       2016-12-16 18:06:51 +08:00 via iPhone
    @upczww 嗯,频次不够用。
    lucifer4he
        8
    lucifer4he  
       2016-12-16 18:50:01 +08:00
    多注册几个账号。多用几个 token 问题解决 啊哈哈

    总比爬起来解析数据好受点
    gdsagdada
        9
    gdsagdada  
       2016-12-16 19:06:50 +08:00
    不道德, github 现在还在亏损,楼主给它省点带宽
    Mdrights
        10
    Mdrights  
       2016-12-16 19:48:35 +08:00 via iPhone
    已經有 Telegram 的 bot 了
    nsa
        11
    nsa  
       2016-12-16 21:37:33 +08:00 via iPhone
    可以先用 ghtorrent 的练
    imcj
        12
    imcj  
    OP
       2016-12-16 22:44:16 +08:00
    @lucifer4he 从我个人的需求上的确是解决问题了。我觉得弄一个开放的 GITHUB 数据库这件事听起来不错。

    @gdsagdada 爬取目标网站数据这件事情不算不道德,算的话,那 google 怎么说? Github 亏损这件事情,我觉得从另外一个角度上来看,这是他们赢取资本的策略。

    @nsa 感谢推荐。
    qdk0901
        13
    qdk0901  
       2016-12-19 08:56:22 +08:00   ❤️ 1
    不好爬,我之前写过一个,挂 vps 上爬了一个月,用 tor 不停切换出口 ip 来绕过限制,只爬了 300 多万用户 /仓库的信息,也不是全部信息,只有一部分,比如只有用户 /仓库前几页的 following/followers/stars 等信息。
    这东西还是放弃吧,最终也没什么卵用
    qdk0901
        14
    qdk0901  
       2016-12-19 08:59:57 +08:00
    最终我是用 word2vec ,分析用户仓库关系,做了一个类似于地图的玩意,我称之为代码地图
    用 d3.js 做了可视化
    http://transing.xyz/codeatlas.html
    holajamc
        15
    holajamc  
       2016-12-19 09:20:48 +08:00   ❤️ 1
    做过一个,嗯目前已经改成了毕设项目……
    HolaJam/github_relationship
    imcj
        16
    imcj  
    OP
       2016-12-19 16:34:32 +08:00
    @qdk0901 这些数据还在吗?

    @holajamc 没看懂。
    holajamc
        17
    holajamc  
       2016-12-20 16:33:45 +08:00
    就是我也在做关羽 github 的一个程序
    描述 github 用户之间的关系,用户和 repo 的关系
    imcj
        18
    imcj  
    OP
       2016-12-20 17:01:01 +08:00
    @holajamc 现在还在进行中吗?交流一下。
    holajamc
        19
    holajamc  
       2016-12-21 11:01:14 +08:00
    @imcj github 可以看到项目地址……为了给 github 省带宽就没有写多线程~目前只是做了用户关系,做好了 Neo4j 版本和 MariaDB 版本, MongoDB 正在做,然后就是 repo 的接口也是写好了的包括自己的 repo , star 的 repo 和 fork 的 repo
    imcj
        20
    imcj  
    OP
       2016-12-21 16:35:21 +08:00
    @holajamc 已经可用了吗?
    holajamc
        21
    holajamc  
       2016-12-22 08:59:38 +08:00
    @imcj 目前还在完善~
    imcj
        22
    imcj  
    OP
       2016-12-22 09:01:15 +08:00 via iPhone
    @holajamc 是从网页爬数据?还是从 api ?
    holajamc
        23
    holajamc  
       2016-12-22 10:43:26 +08:00
    @imcj 从网页采集数据, api 几分钟次数就用完了……
    imcj
        24
    imcj  
    OP
       2016-12-22 14:28:27 +08:00
    @holajamc 上面那个哥们给的 ghtorrent 好像是用非常多的 api key
    Codewj
        25
    Codewj  
       2016-12-22 14:50:41 +08:00 via iPhone
    楼主的项目进行的怎么样了
    imcj
        26
    imcj  
    OP
       2016-12-22 15:33:30 +08:00
    @Codewj 没有开始这样的项目,只是一个 idea ,想看看有没有人已经弄过了。交流一下先。

    你曾经也考虑过这样的东西?
    qdk0901
        27
    qdk0901  
       2016-12-23 18:17:23 +08:00
    @imcj 数据还在,没整理很乱, mongodb 存的, 10G 左右
    imcj
        28
    imcj  
    OP
       2016-12-24 00:23:38 +08:00 via iPhone
    @qdj0901 还准备继续吗?都做了些什么?
    gaocegege
        29
    gaocegege  
       2016-12-26 14:21:39 +08:00
    https://github.com/gaocegege/scala-github-relationship

    之前无聊的时候有做过类似的,一开始单机多线程类似事件驱动来爬的, API rate limit 很成问题,后来只能用单线程同步来做。

    对于 limit 的问题,比较好的解决方案是用多几个帐号,用 token ,好像用的好的话 20 多个帐号就可以爬全站。
    Codewj
        30
    Codewj  
       2016-12-26 22:50:58 +08:00 via iPhone
    @imcj 有想法,做个毕业设计
    imcj
        31
    imcj  
    OP
       2016-12-26 22:54:28 +08:00
    @gaocegege 嗯,有很多设想都是建立在数据完整的情况下。爬数据很费时费力。

    @Codewj 可以多交流,这个帖子里面就有几个人在做这件事。我以前爬过网页,但是后来没有继续。

    如果有可能,大家一起维护一份数据每个人都轻松。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5391 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 07:49 · PVG 15:49 · LAX 00:49 · JFK 03:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.