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

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

网络爬虫爱好者为了爬取视频, 图片, 文档, 软件, 可能只想到写一个 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...爬、下、转存、校园网网关登录一条龙(本事全是这时候学的 - -),日本文化资料看到吐...后来下满了就直接格盘继续...跑了半年

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