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

Posted

技术标签:

【中文标题】在活动网站中检索外部 torrent 统计信息的最佳方式【英文标题】:Best way to retrieve external torrent statistics in an active website 【发布时间】:2015-07-05 08:39:10 【问题描述】:

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

http://kat.cr/ubuntu-15-04-vivid-vervet-desktop-amd64-iso-final-t10550003.html 播种机:3442 水蛭:148

如果 torrent 正在使用我的跟踪器,则可以轻松快速地检索两个页面的数据。但是,如果种子使用不同的跟踪器,我需要从所述跟踪器中抓取它的统计信息(向它发出请求),但是每个种子通常需要几秒钟,显然,我不能让用户等待很想看清单。

我做了一个脚本,可以在后台抓取最新的 90 个种子,但恐怕还不够。网站会发展壮大,种子总数可能会超过 5000。我认为在后台抓取这么多种子是行不通的。

我该怎么做?

【问题讨论】:

【参考方案1】:

以下获取统计数据的策略可用,按效率降序排列:

    通过抓取界面进行全面抓取 - 过去很常见,但由于它会导致流量,如今在大型跟踪器上不太常见 通过自定义导出 URL 进行完整抓取 - 您必须询问跟踪器管理员。有时会记录在他们的网站上 UDP 多次抓取 通过 /scrape?info_hash=A&info_hash=B&info_hash=C 进行 HTTP 多次抓取 - 有些跟踪器支持,有些不支持。 http 单次抓取 DHT scrape 加入群体并通过PEX进行测量

【讨论】:

有趣。您介意解释一下关于#6 和#7 的更多信息吗? 出于某种原因,它们位于列表的末尾。只是为了完整性。它们不太可能对您的情况有用。但我添加了链接。 嗯。我认为这不可能,至少不容易,所以我只是建议用户使用跟踪器。 您提到约 5000 个种子是您的数量级。这对我来说似乎很容易处理。您只是不应该按需构建统计信息,您可以在后台获取它们。但就我个人而言,我不认为 php 是适合这项工作的工具 我制作了一个在后台获取它们的脚本。但是,5000 就是一个例子。不知道会长多少。所以你的建议是:在后台刮掉它们?【参考方案2】:

当开放式跟踪器使用http 时,您通常可以在Tracker 'scrape' Convention 之后进行完整的抓取。 现在,当跟踪器改用UDP 时,就不可能再进行完整的抓取了。

作为替代方案,一些开放式跟踪器会在其网站上发布完整的抓取:

http://coppersurfer.tk/ -> full.tar.gz

http://leechers-paradise.org/ -> static_scrape.gz 或 static_scrape

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

其他跟踪器可能会也可能不会根据要求提供对此类文件的访问权限。

【讨论】:

是的,抓取不是问题。但是,为了获取数据,需要抓取大量种子。 通过完整的抓取或下载以上链接,您可以一次性获得当前向跟踪器发布的所有种子的抓取信息。然后你只需要提取你想要的种子的信息。

以上是关于在活动网站中检索外部 torrent 统计信息的最佳方式的主要内容,如果未能解决你的问题,请参考以下文章

需要帮助使用带有外部链接处理(如“磁铁”)的 webView 制作网站

如何设计用于存储和检索搜索统计信息的数据库表结构?

Rest API 根据 torrent Hash 获取 Torrent 信息

如何编码以便在我的网站上播放 torrent 播放视频

按标志检索与时间相关的数据统计(计数),按外部 id 拆分,跨多个表,在一个数据集中返回

Dbus/GLib 主循环,后台线程