python http/udp bittorrent 跟踪器抓取库
Posted
技术标签:
【中文标题】python http/udp bittorrent 跟踪器抓取库【英文标题】:python http/udp bittorrent tracker scrape library 【发布时间】:2013-03-10 10:12:21 【问题描述】:我有一个 torrent info_hashes 列表。对于每个 info_hash,我都有一个与该 info_hash 对应的跟踪器列表。
我想做的是抓取列表中的每个跟踪器以获取播种机/吸血机/完成的计数。但是,我不想自己写这个,因为我确信这段代码已经在别处实现了
有人知道可以抓取 http:// 和 udp:// 跟踪器的 python 库吗?
我一直在这个项目的其他部分使用 libtorrent,但是它只能从有效的 torrent_handle 中抓取跟踪器(而且我不想为了抓取跟踪器而将这些 info_hashes 添加到 libtorrent 会话中,因为它会开始下载我不想要的文件)
【问题讨论】:
【参考方案1】:我也不想使用 libtorrent,因为它效率很低 - 我希望能够查询跟踪器的多个 info_hashes 而不是一次一个。
我最终编写了自己的 python HTTP/UDP 跟踪器抓取代码,请参见此处:https://github.com/erindru/m2t/blob/master/m2t/scraper.py(欢迎改进!)
【讨论】:
这可以为您提供 IP 地址的对等列表/播种列表吗? 不,它目前不关心这一点,但可以扩展到这样做 好的,谢谢。还有一个问题,我看到 http 需要一个字典(本编码),因此它会获取数据。然而 udp 只是偏移了缓冲区,你怎么知道字节的顺序和它们代表什么,所以如果我需要对等点的 IP,那是什么偏移量?有文件吗? UDP tracker协议与HTTP不同,见xbtt.sourceforge.net/udp_tracker_protocol.html 谢谢我之前看过这个,它没有 peer_list。是否可以扩展您的实现以获取 http 和 udp 的对等列表。否则,torrent 客户端如何做到这一点?【参考方案2】:这不是直接回答您的问题,而是建议您如何使用 libtorrent。
如果您在暂停、非自动管理的状态下添加信息哈希(由add_torrent_params 中的标志控制)。在这种情况下,libtorrent 不会开始下载它。
请记住,libtorrent(尚)不支持抓取 DHT。
【讨论】:
以上是关于python http/udp bittorrent 跟踪器抓取库的主要内容,如果未能解决你的问题,请参考以下文章