BitTorrent协议DHT网络爬虫BitTorrentNetworkSpider

代码连接:https://github.com/zhangbohun/BitTorrentNetworkSpider

代码简要介绍,主要分为几个部分

0 lib库,包括bencode(用于处理B编码),decodeh(用于处理可能的编码问题),pymmh3(用于实现简化版的布隆过滤器),SQLiteUtil(用于实现sqlite3单线程操作)

1 sinffer用于获取网络内的Node节点信息,主要依靠KRPC协议中定义的find_node方法

2 receiver用于接收其他节点发来的信息,包括find_node回复(可以获取新的node信息),以及ping(需要回应pong),find_node,get_peers,announce_peer(可以获取到有用的种子信息)请求

3 inquirer用于获取元数据,通过MetadataInquirer根据bep_0009获取元数据扩展协议实现

4 recorder用于记录种子元数据到数据库,这里用的是标准库自带的sqlite3

5 BloomFilter通过pymmh3以及位操作实现的简化版的布隆过滤器用于数据过滤减少重复操作

6 以上整体构成 Spider主要部分,另包括多线程,获取随机 id,以及 join_dht 加入 DHT 网络等实现

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值