搜片大师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居然也是一个种子
这个是爬取界面

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