磁力搜索引擎网站搭建0:说明

之前偶然间看见这篇文章(现在已经访问不了了),就想着自己也整一个。

整一个

于是从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开头的数量为:

peer

get_announce中0-f开头的数量为:

announce

占比图为:

percent

磁力链接总数太多,选取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

下一篇:磁力搜索引擎网站搭建1:数据获取与保存