我是靠谱客的博主 专注超短裙,最近开发中收集的这篇文章主要介绍现在公开一个DHT网络爬虫网络爬虫供大家一起交流,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

Torrent文件内的数据结构分为以下几部分:announce:Tracker的主服务器announce-list:Tracker服务器列表comment:种子文件的注释comment.utf-8:种子文件注释的utf-8编码creation date:种子文件建立的时间,是从1970年1月1日00:00:00到现在的秒数。encoding:种子文件的默认编码,比如GB2312,Big5,utf-8等info:所有关于下载的文件的信息都在这个字段里,它包括多个子字段,而且根据下载的是单个文件还是多个文件,子字段的项目会不同。当种子里包含多个文件时,info字段包括如下子字段:files:表示文件的名字,大小,该字段包含如下三个子字段: lenghth:文件的大小,用byte计算 path:文件的名字,在下载时不可更改 path.utf-8:文件名的UTF-8编码,同上以上的三个字段每个文件都有一组值。name:推荐的文件夹名,此项可于下载时更改。name.utf-8:推荐的文件夹名的utf-8编码,同上。piece length:每个文件块的大小,用Byte计算pieces:文件的特征信息,该字段比较大,实际上是种子内包含所有的文件段的SHA1的校验值的连接,即将所有文件按照piece length的字节大小分成块,每块计算一个SHA1值,然后将这些值连接起来就形成了pieces字段,由于SHA1的校验值为20Byte,所以该字段的大小始终为20的整数倍字节。该字段是Torrent文件中体积最大的部分,可见如果大文件分块很小,会造成Torrent文件体积庞大。publisher:文件发布者的名字publisher.utf-8:文件发布者的名字的utf-8编码publisher-url:文件发布者的网址publisher-url.utf-8:文件发布者网址的utf-8编码。另外,当发布单文件时,files字段是没有的,而lenghth:name:name.utf-8:这三个字段负责描述单文件的属性:大小,名字,名字的utf-8编码。其他项目和多文件相同。以上的项目即为info字段的全部。说到info就不得不说INFO_HASH,这个值是info字段的HASH值,20个Byte,同样是使用SHA1作为HASH函数。由于info字段是发布的文件信息构成的,所以INFO_HASH在BT协议中是用来识别不同的种子文件的。基本上每个种子文件的INFO_HASH都是不同的(至少现在还没有人发现有SHA的冲突),所以BT服务器以及客户端都是以这个值来识别不同的种子文件的。计算的具体范围是从info字段开始(不包含"info"这四个字节),一直到nodes字段为止(不包含"nodes"这5个字节和nodes前边表示nodes字段长度的"5:"这两个字节)。另外,INFO_HASH值是即时计算的,并不包含在Torrent文件中。nodes:最后的一个字段是nodes字段,这个字段包含一系列ip和相应端口的列表,是用于连接DHT初始node。效果可以看下具体51搜索展示http://www.51bt.cc,结合Xunsearch全文检索技术,可以达到毫秒级的数据搜索

最后

以上就是专注超短裙为你收集整理的现在公开一个DHT网络爬虫网络爬虫供大家一起交流的全部内容,希望文章能够帮你解决现在公开一个DHT网络爬虫网络爬虫供大家一起交流所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部