百度一下bt search,就会发现网络上有大把的磁力链搜索引擎,最著名的莫过于海盗湾了.想要搜索就需要有资源,而资源一般都是从网络上爬取的,不同与web搜索通过主动的分析链接来一层层爬取内容,磁力链的搜索一般是通过DHT协议来获取种子信息.DHT协议是BitTorrent协议的补充协议,在BitTorrent协议中必须有一个tracker服务器用来记录哪个peer正在下载哪个资源,然后新的peer如果请求这个资源,tracker服务器就会把前面的peer信息告诉这个新的peer,这是一个集中服务的协议,产生的问题也很明显,如果tracker不能服务,那么这个资源就在网络上找不到了,而延伸出来的DHT协议就是为了解决这个问题,它把各个peer构建成一个分布式hash表的网络,你如果需要某些资源,就在这个网络中询问,直到找到资源,这样就不需要tracker服务器就能找到想下载的资源了.关于DHT协议请参考文末的参考文档,本文只描述实现DHT爬虫的相关思路.协议DHT协议基于UDP,主要有4个方法ping,find_node,get_peers,announce_peer, 其中要实现的方法是find_node,get_peers,announce_peer.在DHT分布式网络中,我们的爬虫也是一个NODE,当这个NODE加入到DHT网络后,就会被网络中NODE加入到自己的路由表,网络
...
继续阅读
(145)