网络爬虫爱好者为了爬取视频,图片,文档,软件,可能只想到写一个 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 不是很熟,代码写得不是很好。