beilun
V2EX  ›  Node.js

最近对 DHT 网络感兴趣,于是自己撸了个 DHT 爬虫

  •  
  •   beilun · May 9, 2016 · 15802 views
    This topic created in 3658 days ago, the information mentioned may be changed or developed.

    自己撸的一个 nodejs 版 dht 爬虫,用来加入 dht 网络,获取 infohash ,代码见 gayhub.
    gayhub: https://github.com/beilunyang/dhtCrawler
    从昨天晚上 8 点开爬至今,已经用我 5 美刀的 DO vps 爬了 1200 多万 infohash 。。由于还没搞定 metadata 获取的代码,所以具体有多少真实种子还不知道(手工试了几个,发现获取率还挺高的)。 我遇到的问题,以及一些琐碎都已经在代码里注释了,欢迎对 dht 感兴趣的新人参考(大佬们,多给点意见( ⊙ o ⊙ )啊!)。

    21 replies    2018-05-03 16:43:02 +08:00
    xiaoyu9527
        1
    xiaoyu9527  
       May 9, 2016
    node js 比 python 还牛逼?
    xiaoyu9527
        2
    xiaoyu9527  
       May 9, 2016
    求教使用教程
    beilun
        3
    beilun  
    OP
       May 9, 2016
    @xiaoyu9527 没用 python 写过,但光从 infohash 的获取来说,应该是 nodejs 要快。
    beilun
        4
    beilun  
    OP
       May 9, 2016
    @xiaoyu9527 见文档
    congeec
        5
    congeec  
       May 9, 2016
    >采用 nodejs 编写,由于 js 天生优秀的异步非阻塞 io 支持,无需向 python 等其他语言一样采用超时机制同步等待响应,所以速度非常快。

    .....Python 也有协程,有 async/await 。原生支持异步。看看 uvloop 你就知道有多快
    miyuki
        6
    miyuki  
       May 9, 2016 via Android
    注意蜜罐
    beilun
        8
    beilun  
    OP
       May 9, 2016
    @congeec 已充电。。对 python 的了解并不多,只用过 python2 ,没接触过 python3, 在我映像中 python2 异步一般都是通过 twisted ,谢谢指正。
    gamexg
        9
    gamexg  
       May 9, 2016 via Android
    Python + gevent 或者 golang ,代码直接按同步多线程写,语言自动转换成为异步协程,很省事。
    ljcarsenal
        10
    ljcarsenal  
       May 9, 2016
    有什么 dht 的入门资料?
    beilun
        11
    beilun  
    OP
       May 9, 2016 via Android
    @gamexg gevent 对 windows 的支持貌似不怎么好,而且 js 天生就是异步,觉得还是 js 更省事。 golang 完全没接触过(๑•ั็ω•็ั๑)
    NullMan
        13
    NullMan  
       May 10, 2016
    http://github.com/Fuck-You-GFW/p2pspider

    这个, 我写的, 可以获取 metadata, 也是 Node.js 写的, 1300+ star
    Soar360
        14
    Soar360  
       May 10, 2016
    我大 C#使用异步之后会更快吧~
    beilun
        15
    beilun  
    OP
       May 10, 2016 via Android
    @NullMan 膜拜大角虫
    neocanable
        16
    neocanable  
       May 10, 2016
    实现过一个 ruby 的,在国内非公网的 ip 上爬,并且拿到 infohash 在各个种子网站上下载,内容丰富~
    beilun
        17
    beilun  
    OP
       May 10, 2016 via Android
    @Soar360 期待 c#版
    puorg
        18
    puorg  
       Dec 2, 2016
    es2015 版本的 dht 爬虫 https://github.com/callmelanmao/p2pspider
    buseni
        19
    buseni  
       Aug 9, 2017
    不错,先学习了
    DaTaoGe
        20
    DaTaoGe  
       Apr 26, 2018
    您好,我测试了一下,速度确实很快,但是还没有成功解析一个了,我这里有一个 python 实现的,获取的能一多半解析吧,但是速度太慢了,想问下楼主,您现在还搞这个么?
    soho176
        21
    soho176  
       May 3, 2018
    收藏了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1519 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 71ms · UTC 16:47 · PVG 00:47 · LAX 09:47 · JFK 12:47
    ♥ Do have faith in what you're doing.