开源项目 [分享] 你写过 Web 爬虫, 那么你写过 P2P 爬虫吗?

xiaofan · 2016年03月03日 · 最后由 jasl 回复于 2016年03月17日 · 4594 次阅读

网络爬虫爱好者为了爬取视频,图片,文档,软件,可能只想到写一个 Web 爬虫,从各大网站爬取。但是你知道吗?这个世界上,还有 DHT 协议,BitTorrent 协议。

想想看,全世界每天有那么多人通过 BT 种子 & 磁力链接下载资源 (有你懂滴的资源), 如果写个爬虫,从 DHT 网络里"监听"人们正在下载的资源,然后把这个资源的种子信息给下载并保存下来。打造成属于自己的海盗湾!

这几天,我用 Node.js 重写了我去年用 Python 写出的 DHT 爬虫 + BT 客户端 = P2P 爬虫。为什么用 Node.js 重写呢?除了我闲得蛋疼外,还有个原因是 Node.js 在这个 Network IO 操作频繁的项目上,性能非常非常牛逼,占用也非常少!不过代码难写倒是真的。我花了好多天才重写出来。

爬虫运行演示视频: http://v.youku.com/v_show/id_XMTQ4NTIzMDU2MA==.html

默认参数下,在最便宜的日本区 Vultr VPS 运行 24 小时,可”监听"到 50 万 个 BT 种子信息。我那个 Python 版的爬虫 (只开源一部分), 已经爬了 1400 万种子信息,连续运行了一年多。

我平常下载资源,都是从我私人种子数据库里搜索,然后拿磁力链接去下载。比如搜索引擎找不到的新电影,我都能从我数据库找到。

代码在这里: https://github.com/Fuck-You-GFW/p2pspider

求 Star !

如果你对此也有研究,建议你看看 README.md, 列有这个项目如何发展的计划。如果你对此感兴趣,请 fork 它,贡献你的智慧。

如果你对 Node.js 比较熟练,也欢迎你重构我的代码,我对 Node.js 不是很熟,代码写得不是很好。

太奇怪了,都没人回复,别人说这论坛人多。不至于写了 Ruby 代码,都懒得评论了吧?我写过 Python 的,都还能打字评论呢。

可能大家都感兴趣,只是对 bittorrent 研究的不多

这种东西其实是很多的,有很多语言的实现,包括 Erlang、Node.js、Go、Python 等

已经默默 star 了,感觉 nodejs 写爬虫还是挺好的

看起来很牛的样子……

#1 楼 @xiaofan 从侧面说明程序员是孤独的啊

#7 楼 @awking 为什么程序员要孤独呢?

很牛逼了,非常喜欢楼主的爬虫

已经 star,你的账号名太亮了

大学的时候和朋友利用职务之便挪用学校的服务器爬 ed2k...爬、下、转存、校园网网关登录一条龙(本事全是这时候学的 - -),日本文化资料看到吐...后来下满了就直接格盘继续...跑了半年

需要 登录 后方可回复, 如果你还没有账号请 注册新账号