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

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

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

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

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

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

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

代码在这里: https://github.com/Fuck-You-GFW/p2pspider (已有 550 Star 了)

如果你觉得此爬虫有趣,请不要小气,点个 Star ! 呗

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

《L05 电商实战》
从零开发一个电商项目,功能包括电商后台、商品 & SKU 管理、购物车、订单管理、支付宝支付、微信支付、订单退款流程、优惠券等
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。