在活动网站中检索外部torrent统计信息的最佳方式


Best way to retrieve external torrent statistics in an active website

我正在制作一个类似于海盗湾、Kickass.to等的bittorrent跟踪器/网站。有必要在索引和torrent页面中检索torrent统计信息(种子、下载(。示例:

http://kat.cr/ubuntu-15-04-vivid-vervet-desktop-amd64-iso-final-t10550003.html
种子选手:3442名Leechers:148名

如果torrent正在使用我的跟踪器,那么很容易快速检索两个页面的数据。然而,如果torrent使用不同的跟踪器,我需要从所述跟踪器中抓取它的统计数据(向它发出请求(,但这通常需要几秒钟的时间来处理每个torrent,显然,我不能让用户等那么久才能看到列表。

我制作了一个脚本,可以抓取后台运行的最新90条洪流,但我担心这还不够。这个网站会成长起来,总的浏览量可能会超过5000次。我不认为在后台刮那么多洪流会起作用。

我该怎么做?

以下获取统计信息的策略可用,按效率降序列出:

  1. 通过刮取接口进行完全刮取-过去很常见,但由于其造成的流量,现在在大型追踪器上已经不那么常见了
  2. 通过自定义导出URL进行完全抓取-您必须询问跟踪器管理员。有时记录在他们的网站上
  3. UDP多刮
  4. 通过/scrape?info_hash=A&info_hash=B&info_hash=C的HTTP多抓取-有些跟踪器支持它,有些则不支持
  5. http单刮
  6. DHT刮伤
  7. 加入群体并通过PEX进行测量

当开放跟踪器使用http时,通常可以按照Tracker的"scrape"约定进行完全刮取
现在,当跟踪器使用UDP时,就不可能再进行完整的刮擦了。

作为一种选择,一些开放式跟踪器在他们的网站上发布完整的摘要:

  • http://coppersurfer.tk/->完整.tar.gz
  • http://leechers-paradise.org/->staticscrape.gz或staticscrape

  • http://www.blackunicorn.xyz->scrape.gz

其他跟踪器可以根据请求提供或不提供对这样的文件的访问。