開(kāi)源的dht爬蟲(chóng)已經(jīng)有很多了,有php版本的,python版本的和nodejs版本。經(jīng)過(guò)一些測(cè)試,發(fā)現(xiàn)還是nodejs版本的爬蟲(chóng)效率最高,測(cè)試使用的是github上面的已有開(kāi)源項(xiàng)目,https://github.com/dontcontactme/p2pspider/。

p2pspider開(kāi)發(fā)的時(shí)候es2015才剛出來(lái),所以決定用es2015把p2pspider項(xiàng)目重寫(xiě)一遍,順便深入學(xué)習(xí)一下dht爬蟲(chóng)的原理。

dht爬蟲(chóng)總體分成兩個(gè)模塊。

dht模塊

dht模塊實(shí)現(xiàn)一個(gè)dht節(jié)點(diǎn),用來(lái)和網(wǎng)上的其他dht節(jié)點(diǎn)進(jìn)行通信,在通信的過(guò)程中完成收集磁力鏈接的任務(wù)。

bt模塊

bt模塊實(shí)現(xiàn)一個(gè)bt協(xié)議的客戶端程序,當(dāng)發(fā)現(xiàn)一個(gè)磁力鏈接可以下載的時(shí)候,通過(guò)bt客戶端和遠(yuǎn)程的服務(wù)器通信,下載種子的元數(shù)據(jù),

原理解析

0×01 相關(guān)術(shù)語(yǔ)

網(wǎng)友評(píng)論