[分享]你寫過 Web 爬蟲, 那麼你寫過 P2P 爬蟲嗎?

網絡爬蟲愛好者爲了爬取視頻, 圖片, 文檔, 軟件, 可能只想到寫一個 Web 爬蟲, 從各大網站爬取. 可是你知道嗎? 這個世界上, 還有 DHT 協議, BitTorrent 協議. html

想一想看, 全世界天天有那麼多人經過 BT 種子 & 磁力連接下載資源(有你懂滴的資源), 若是寫個爬蟲, 從 DHT 網絡裏"監聽"人們正在下載的資源, 而後把這個資源的種子信息給下載並保存下來. 打形成屬於本身的海盜灣! git

這幾天, 我用 Node.js 重寫了我去年用 Python 寫出的 DHT 爬蟲 + BT 客戶端 = P2P 爬蟲. 爲何用 Node.js 重寫呢? 除了我閒得蛋疼外, 還有個緣由是 Node.js 在這個 Network IO 操做頻繁的項目上, 性能很是很是牛逼, 佔用也很是少! 不過代碼難寫卻是真的. 我花了好多天才重寫出來.github

爬蟲運行演示視頻: http://v.youku.com/v_show/id_XMTQ4NTIzMDU2MA==.html數據庫

默認參數下, 在最便宜的日本區 Vultr VPS 運行 24 小時, 可」監聽"到 50 萬 個 BT 種子信息. 我那個 Python 版的爬蟲(只開源一部分), 已經爬了 1400 萬種子信息, 連續運行了一年多.網絡

我日常下載資源, 都是從我私人種子數據庫裏搜索, 而後拿磁力連接去下載. 好比搜索引擎找不到的新電影, 我都能從我數據庫找到. ide

代碼在這裏: https://github.com/Fuck-You-GFW/p2pspider性能

求 Star !網站

若是你對此也有研究, 建議你看看 README.md, 列有這個項目如何發展的計劃. 若是你對此感興趣, 請 fork 它, 貢獻你的智慧. 搜索引擎

若是你對 Node.js 比較熟練, 也歡迎你重構個人代碼, 我對 Node.js 不是很熟, 代碼寫得不是很好.視頻

若是有興趣, 無論你是否是開發者, 可加 QQ 羣即時交流: 145234507

相關文章
相關標籤/搜索