[分享] 基于 nodejs 开发的“磁力链接”爬虫 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
am0zing
V2EX    分享创造

[分享] 基于 nodejs 开发的“磁力链接”爬虫

  •  2
     
  •   am0zing 2015-03-30 16:17:20 +08:00 9960 次点击
    这是一个创建于 3853 天前的主题,其中的信息可能已经有所发展或是发生改变。
    学习nodejs,顺便写来玩玩的,可以抓取dht网络里活跃的资源,也就“bt下载”的资源。

    爬虫在一台1核1G的VPS上跑了几个月了,目前收集到300W+资源。

    成品地址: http://findit.so

    Github地址: https://github.com/keenwon/antcolony
    第 1 条附言    2015-04-01 09:38:08 +08:00
    AntColony的原理是伪装成一个p2p节点,接受别人的"查询",例如有别的节点会问你:“你有没有在下载infohash是0000000...的资源啊?或者知不知道谁在下载呢?”根据协议规则,AntColony会告诉它几个“最佳”节点,对方会继续向这些节点查询它要找的infohash。

    而此时,AntColony就知道了“有人在下载infohash是0000000...”的资源了,AntColony会记录下来这个infohash,去第三方的种子托管服务器下载这个infohash对应的种子,然后解析种子文件,把这个资源的标题,文件列表,大小等信息索引下来,访问http://findit.so就可以搜索到了。

    原理就这样。
    第 2 条附言    2015-04-05 17:27:30 +08:00
    有朋友尝试部署AntColony,遇到不少问题,今天我搞了一台vps,从头到尾部署了一遍,写了个文档,需要的可以看看 https://github.com/keenwon/antcolony/blob/master/doc/%E9%83%A8%E7%BD%B2%E6%96%87%E6%A1%A3.md
    第 3 条附言    2016-01-03 20:20:34 +08:00
    原来的域名失效了,新地址 http://findit.keenwon.com
    20 条回复    2016-01-03 20:23:47 +08:00
    Themyth
        1
    Themyth  
       2015-03-30 17:25:41 +08:00
    不错,自动入库的么
    am0zing
        2
    am0zing  
    OP
       2015-03-30 17:28:36 +08:00
    @Themyth 整个过程分多个进程的,有负责爬资源的(收集种子的infohash);有负责下载资源的(下载种子文件);有负责入库的(解析下载到的种子文件,存入mongodb)
    yimity
        3
    yimity  
       2015-03-31 09:30:02 +08:00
    不错,star 了。
    solu
        4
    solu  
       2015-03-31 09:44:13 +08:00
    感谢分享,一直想学习DHT,但一直没静下心来(/Д`)/
    am0zing
        5
    am0zing  
    OP
       2015-03-31 09:58:43 +08:00
    @yimity
    @solupro
    多谢支持!
    sewyu
        6
    sewyu  
       2015-03-31 10:24:13 +08:00
    先学习一下怎么用,纯粹是感兴趣,非常感谢分享
    kofj
        7
    kofj  
       2015-03-31 11:51:25 +08:00
    比我golang写的好多了,点个star.之前的codeit.cn也是磁力搜索引擎,结果搜索内容都太敏感了,又是cn域名,不得不停了下来.
    am0zing
        8
    am0zing  
    OP
       2015-03-31 12:00:31 +08:00
    @kofj 磁力搜索这种东西,内容没有不敏感的,终究只能玩玩了。。。
    goodbest
        9
    goodbest  
       2015-03-31 12:13:21 +08:00
    能说一下现在数据库用了多少空间么?
    am0zing
        10
    am0zing  
    OP
       2015-03-31 12:48:53 +08:00   1
    @goodbest
    mongodb 312W条数据,将近10G,mongo实际占用大概12G,数据备份压缩后大概1.7G
    目前VPS总共只有20G,所以爬虫已经停了好些天了
    goodbest
        11
    goodbest  
       2015-03-31 12:53:51 +08:00
    @am0zing 感谢。看起来也挺多的。

    你代码里的female、male、queen啥的是模拟雌雄蚁的角色么?挺有意思的
    am0zing
        12
    am0zing  
    OP
       2015-03-31 12:57:01 +08:00
    @goodbest 是滴,动物世界看多了。。。
    julor
        13
    julor  
       2015-03-31 16:35:29 +08:00
    很不错,刚才用“少妇”做关键字,找到一些好东西!
    am0zing
        14
    am0zing  
    OP
       2015-03-31 17:00:36 +08:00
    @julor -_-|||
    atshow
        15
    atshow  
       2015-04-05 02:08:23 +08:00
    赞,这得持续抓才有价值。
    am0zing
        16
    am0zing  
    OP
       2015-04-08 14:56:23 +08:00
    @atshow 是的,但是mongodb真的太tmd浪费硬盘了,已经养不起了
    youxiaer
        17
    youxiaer  
       2015-08-17 02:33:19 +08:00
    楼主,问一下,从infohash找到对应的种子文件,只能从指定的网站上面去下载吗?
    am0zing
        18
    am0zing  
    OP
       2015-10-13 13:48:57 +08:00
    @youxiaer
    好久没上了,我该设置个邮件提醒什么的。
    不一定的要从指定网站下载,你可以根据 infohash 下载种子文件,就像迅雷一样,输入磁力链接,他会先下载种子文件,然后开始下载实际内容。
    不过如果从 infohash 下载种子文件这块,我没去研究, bittorrent.org 有相关文档,直接从第三方网站下载是最省事的。
    la0wei
        19
    la0wei  
       2015-11-10 10:54:46 +08:00
    有什么 vps 对这方面限制少的?
    am0zing
        20
    am0zing  
    OP
       2016-01-03 20:23:47 +08:00
    @la0wei vps 限制了什么?可以用 digitalocean : https://www.digitalocean.com/?refcode=6f104d26aad1 ,用这个链接可以赚 10 刀,当然我也可以赚 哈哈。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     3235 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 11:18 PVG 19:18 LAX 04:18 JFK 07:18
    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