i007.cc

i007.cc

优先队列-降维打击

搜片大师2.0-BT资源搜索引擎开发案例(python+DHT+Aria2+mysql+redis+coreseek)

原文地址

 

前言:

2020年是一个悲催的一年啊。工作上事情不咋充实。

偶尔下载 XX的时候。经常去各种磁力/BT搜索引擎去寻找资源。

发现好多网站都关闭了,为何不自己研究研究他们资源从何而来的呢。

就这么突发奇想,有了这样的开始。

于是某度,某歌查找资料一番。

原来,有一个东西叫:DHT 是通过蜘蛛被动获取到磁力连接

可看这个做解:点我


构思:

网上发现一个东西叫 搜片大师 的程序,经过研究后,发现http server 还能正常工作。索性就将他反编译,在原有基础上进行制作了

框架图:本来画了一张,刚刚不小心丢回收站删除了。懒得画了

大概就是这个样子:

1、DHT 蜘蛛获取磁力 hash

2、收到hash后,调用redis 看是否已经存在(存在则说明已经受到过请求了。就排除),

3、先写入redis,避免重复请求,测试过程中,发现很多重复的hash请求

4、蜘蛛则直接BEP 009  010 获取对方种子数据。

5、蜘蛛获取种子数据失败后,调用第三方磁力转种子的网站,进行种子获取。第三方网站还获取失败,则插入mysql 临时表,后期调用Aria2进行下载,

(这里蜘蛛获取种子有:DHT+HTTP+Aria2,为啥要获取种子呢:蜘蛛只是收到的一个 磁力hash,其他内容都没有,所以得先有B协议的元数据,再解析很看得懂的。)

6、成功则解析种子,插入mysql。

7、coreseek 对mysql 种子数据进行全文索引。

8、http server 启动,搜索调用coreseek 即可。

 


代码段:

准备复制粘贴才发现,代码文件太多了。索性偷懒截个图算咯。反正作为开发人员,网上到处都能 CTRL C +CTRL V


上面一些文件编译成不同exe功能


成果:

开发历程,断断续续+心血来潮,差不多花了1个月时间左右吧。毕竟 下班后,玩游戏,看电视。剩下的时间就不多了。

蜘蛛开3个线程,从凌晨 2021-01-20 00:16:20 到这会儿18:44 历经18个小时 爬取种子数量:

取种子成功:30196

取种子失败:1489481

解析种子内文件数:1249542

也不知道这个数量到底是多还是少。才3W出头。也可能跟家里宽带有关系吧!

最终秀一下成品界面。不喜勿喷

这几张图,是在原ui界面加的一些参数。

web 界面

搞不懂一个MP3居然也是一个种子

这个是爬取界面

 

 

到此结束,下一步研究分析下 那些区域的人下载量大。那些区域下载的一些啥类型的资源。。。。

发表回复