首頁  >  文章  >  後端開發  >  10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!

10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!

Python当打之年
Python当打之年轉載
2023-08-10 16:19:292639瀏覽


本文主要介紹利用Python實現磁力連結大量下載影片。

前幾天一個朋友傳給我一堆磁力鏈接,說是一些比較不錯的電影,可以這兩天閒著看看。可是連結太多了,如果一個個添加下載還不得累死啊!所以我決定使用一些自動化下載的方法來試試。

一開始我企圖去找一些現有下載工具的API,但比較不幸,沒有找到,但我發現一個一個比較有趣的函式庫 pypiwin32,這個函式庫是用來執行一些windows指令的。也是非常棒的一個函式庫。之前有用到它處理excel。此時我打算使用win32去自動驅動迅雷實現種子連接批量自動下載。

關於pypiwin32這個函式庫,我注意到了Dispatch函數,使用這個函數應該可以直接驅動迅雷。這個函數是用來連接固定軟體的,使用這個程式只需要將安裝軟體在本電腦註冊的名字取得就可以了。為了簡化找出註冊名的流程,我把迅雷的註冊名稱直接寫在這裡:

ThunderAgent.Agent.1

我本地的註冊名稱是上面這個,當然如果上面這個不行可以試試看下面這個:

ThunderAgent.Agent64.1

對於目前版本的迅雷9或迅雷10應該都是沒有問題的。

那下面就開始我們的自動化旅程了!

首先我們需要下載pypiwin32這個函式庫,我們使用pip直接安裝。

pip install pypiwin32

#如果下載速度過慢可以指定清除來源進行下載:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pypiwin32

10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!

#下面我們就可以直接使用這個模組了。

我們主要使用Dispatch這個函數,將迅雷的註冊名稱放入此函數中。來完成迅雷的載入。

<br/>
from win32com.client import Dispatch
thunder = Dispatch(&#39;ThunderAgent.Agent.1&#39;)

成功啟動迅雷之後我們就可以在迅雷裡面加入任務了。

此時我們使用AddTask方法。

AddTask方法裡面需要傳入三個參數:

thunder.AddTask(磁力连接,
                下载保存的文件名,
                保存路径
                )

之後我們只需要使用CommitTasks函數提交任務就可以了.

#完整程式碼如下:

from win32com.client import Dispatch

thunder = Dispatch(&#39;ThunderAgent.Agent.1&#39;)
url = "ftp://ygdy8:ygdy8@yg39.dydytt.net:3010" \
"/阳光电影www.ygdy8.com.追龙番外之十亿探长" \
".HD.1080p.国语中字.mkv"
filename = "追龙番外之十亿探长.mkv"
thunder.AddTask(url, filename, r"C:\迅雷下载")
thunder.CommitTasks()
print("任务已建立,开始下载:{}....".format(filename))

程式碼就這麼多了。不過,對於迅雷,我們還需要做一些設定:

10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!

我們需要將一鍵下載勾上,在預設下載方式裡面選擇立即下載。

這樣就可以了,以下是效果影片:

#下面我們建立多個任務來進行下載,我們就拿《愛情公寓5》的資源來做個示範:

10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!

#一共36集,我們可以看到url的一些規律,可以取得36集的所有磁力連接,然後批量添加到任務中:

for i in range(1, 37):
if i < 10:
        i = "0{}".format(i)
    url = "ftp://ygdy8:ygdy8@yg76.dydytt.net:5919/" \
"[阳光电影-www.ygdy8.com]爱情公寓5-{}.mp4"\
        .format(i)
    filename = url.split(&#39;]&#39;)[1]
    thunder.AddTask(url, filename, r"C:\迅雷下载")
print("下载任务建立:{}....".format(filename))
    thunder.CommitTasks()

此時我們批量下載的任務就建立好了,可以進行自動批量下載了,效果視頻如下:

如果朋友给你的磁力连接是一个txt文件,那我们还可以读取文件每一行的磁力连接进行下载:

10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!

import csv
with open("爱情公寓资源.txt", &#39;r&#39;, encoding=&#39;utf-8&#39;) as f:
    reader = csv.reader(f)
    films = [i[0] for i in reader]
thunder = Dispatch(&#39;ThunderAgent.Agent.1&#39;)
for film in films:
    thunder.AddTask(film, film[-12:], r"C:\迅雷下载")
    thunder.CommitTasks()

怎么样是不是很棒?你也来试试吧!

以上是10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Python当打之年。如有侵權,請聯絡admin@php.cn刪除