磁力搜索引擎网站搭建0:说明
之前偶然间看见这篇文章(20230211现在已经访问不了了),就想着自己也整一个。
于是从GitHub上面找了现成的:
asyncDHT使用MySQL数据库存储数据,但是我在Ubuntu20.04+MySQL+Python3.8.5上面没有没有成功运行。magnet-dht可以使用,并且跑满带宽,但是使用Redis存储数据,而我不会使用Redis。
asyncDHT作者在阿里云ECS(1核、1G、100M/s)上跑了66小时。获取get_peers请求的info_hash 21,313,390条记录(不重复),announce_peer请求的info_hash 849,355条记录(不重复),get_peers和announce_peer请求的info_hash 76,411,582条记录(含重复)。
我在腾讯云ECS(2核,4G,5M/s)上运行接近两周(运行时间太长我忘了具体时间),获取记录get_peers类型info_hash为8488890条,announce_peer类型info_hash为129条。
爬了那么长时间我才意识到链接是永远爬不完的。
get_peers中0-f开头的数量为:
get_announce中0-f开头的数量为:
占比图为:
磁力链接总数太多,选取get_peers中b开头的磁力链接,只有50万条,这样爬取的种子不会太多。
但是找不到有效的BT种子仓库或者找的仓库无法直接获取,无法批量获取*.torrent文件,可能需要考虑从dht网络中直接获取种子文件。
为了达成原来的目的,这次直接搭建一个完整的磁力链接搜索引擎网站,之后想怎么分析都可以。而且磁力链接有几千万条可以测试MySQL数据库和网站的并发访问量。
一个磁力链接网站包括:
- 前端,普通的网站显示页面,类似于百度搜索引擎,同时显示热词等等
- 搜索引擎,前端的搜索功能支持
- 前端2,用于显示搜索的结果
- 前端3,用于显示某个磁力链接的详细信息
- 爬虫,利用爬虫和DHT原理获取磁力链接和磁力链接的详细信息
- 数据库,保存获取的所有信息
本系列测试的服务器配置为:
2xCPU + 8G RAM + 80G HD + Ubuntu LTS 20.04 + Apache2 2.4.41 + PHP 7.4.3 + MySQL 8.0.26 + Python3 3.8.10