本文教你使用 Python 包装器为 qBittorrent Web API 自动下载、暂停和处理 Python 中的 Torrent 文件,包括Python下载Torrent文件示例。
你是否曾经想以编程方式下载 torrent 中的文件?好吧,在本教程中,你将学习如何使用 Python 下载 Torrent 文件。
我们将在这里使用qBittorrent,这是因为它有一个很酷的 Python 包装器,可以为我们简化一切。
Python如何下载Torrent文件?首先,你需要为你的操作系统下载并安装 qBittorent 官方客户端,然后使用以下命令安装 Python 包装器模块:
pip3 install python-qbittorrent
如何在Python中下载Torrent文件?现在在我们深入代码之前,我们需要进行一些配置,在安装 qBittorent 客户端后,你需要使用以下步骤启用qBittorrent Web UI:
- 设置好一切后,启动 qBittorrent。在菜单栏上,转到工具 > 选项qBittorrent WEB UI。
- 当新窗口出现时,选择Web UI选项。
- 选中“Web 用户界面(远程控制)”复选框。
- 你可以选择一个端口(默认为8080)。
- 设置用户名和密码(默认为admin:adminadmin)。
文章图片
现在我们已经启用了 Web UI,你可以转到浏览器并使用地址“127.0.0.1:8080”查看 qBittorrent 网络版本。你将看到一个小的登录页面,如下所示:
文章图片
将你设置的凭据放入配置中,然后登录,现在你应该可以看到 qBittorrent Web UI:
文章图片
Python下载Torrent文件示例解释:如果你在这里,那么恭喜你!你现在可以使用 Python 下载 torrent 文件,打开一个新的 Python 文件(或交互式 Python shell),并导入 qBittorrent 模块:
from qbittorrent import Client
现在让我们连接并登录到 Web UI:
# connect to the qbittorent Web UI
qb = Client("http://127.0.0.1:8080/")# put the credentials (as you configured)
qb.login("admin", "adminadmin")
Python如何下载Torrent文件?我为本教程选择了这个 torrent 文件,请随意使用你想要的任何 torrent 文件(只需将其放在你当前的工作目录中并更改名称):
# open the torrent file of the file you wanna download
torrent_file = open("debian-10.2.0-amd64-netinst.iso.torrent", "rb")
注意:如果你不确定open()函数在做什么,请查看本教程。
让我们开始下载:
# start downloading
qb.download_from_file(torrent_file)
如果你在交互式窗口中逐个单元执行此操作,你将立即看到一个新的 torrent 文件出现在 Web UI 和 qBittorrent 桌面客户端中,如下图所示:
文章图片
太棒了,你可以使用savepath 参数将结果文件保存到你实际想要的路径:
# you can specify the save path for downloads
qb.download_from_file(torrent_file, savepath="/the/path/you/want/to/save")
如何在Python中下载Torrent文件?你还可以使用download_from_link()方法,该方法采用你要下载的磁铁 URL:
# this magnet is not valid, replace with yours
magnet_link = "magnet:?xt=urn:btih:e334ab9ddd91c10938a7....."
qb.download_from_link(magnet_link)
你还可以做各种事情,例如,让我们暂停客户端中的所有种子:
# pause all downloads
qb.pause_all()
【如何在Python中下载Torrent文件(代码实现示例)】或者你可以恢复它们:
# resume them
qb.resume_all()
Python下载Torrent文件示例 - 甚至列出它们并显示一些有用的信息:
def get_size_format(b, factor=1024, suffix="B"):
"""
Scale bytes to its proper byte format
e.g:
1253656 => '1.20MB'
1253656678 => '1.17GB'
"""
for unit in [
"", "K", "M", "G", "T", "P", "E", "Z"]:
if b <
factor:
return f"{b:.2f}{unit}{suffix}"
b /= factor
return f"{b:.2f}Y{suffix}"# return list of torrents
torrents = qb.torrents()for torrent in torrents:
print("Torrent name:", torrent[
"name"])
print("hash:", torrent[
"hash"])
print("Seeds:", torrent[
"num_seeds"])
print("File size:", get_size_format(torrent[
"total_size"]))
print("Download speed:", get_size_format(torrent[
"dlspeed"]) + "/s")
这是我的输出:
Torrent name: debian-10.2.0-amd64-netinst.iso
hash: 86d4c80024a469be4c50bc5a102cf71780310074
Seeds: 70
File size: 335.00MB
Download speed: 606.15KB/s
Python如何下载Torrent文件?你还可以使用它们的哈希值暂停和恢复特定的 torrent 文件,这个包装器提供了丰富的有用方法,请查看他们的完整 API 方法文档和GitHub 存储库。
好的,这就是本教程的内容,这将使你接受许多很酷的挑战,这是一个示例挑战:
- 获取所有网站链接并仅提取 torrent 文件,然后仅下载带有.torrent扩展名的文件。之后,启动它们以在 qBittorrent 中下载,非常整洁对吗?去吧。
推荐阅读
- 如何在Python中使用Google自定义搜索引擎API()
- 如何在Python中使用Github API(用法示例教程)
- 如何在Python中使用Google Drive API(用法示例)
- 如何在Python中翻译语言(代码实现示例)
- 如何在Python中制作URL缩短器(代码实现示例)
- 如何在Python中获取Google页面排名(代码示例)
- 如何用Python制作电报机器人(代码示例教程)
- 如何在Python中使用Gmail API(用法教程)
- 如何在Python中使用YouTube API提取YouTube数据()