前幾天一個朋友傳給我一堆磁力鏈接,說是一些比較不錯的電影,可以這兩天閒著看看。可是連結太多了,如果一個個添加下載還不得累死啊!所以我決定使用一些自動化下載的方法來試試。
一開始我企圖去找一些現有下載工具的API,但比較不幸,沒有找到,但我發現一個一個比較有趣的函式庫 pypiwin32,這個函式庫是用來執行一些windows指令的。也是非常棒的一個函式庫。之前有用到它處理excel。此時我打算使用win32去自動驅動迅雷實現種子連接批量自動下載。
關於pypiwin32這個函式庫,我注意到了Dispatch函數,使用這個函數應該可以直接驅動迅雷。這個函數是用來連接固定軟體的,使用這個程式只需要將安裝軟體在本電腦註冊的名字取得就可以了。為了簡化找出註冊名的流程,我把迅雷的註冊名稱直接寫在這裡:
ThunderAgent.Agent.1
我本地的註冊名稱是上面這個,當然如果上面這個不行可以試試看下面這個:<br/>
ThunderAgent.Agent64.1
對於目前版本的迅雷9或迅雷10應該都是沒有問題的。 <br/>
那下面就開始我們的自動化旅程了! <br/>
首先我們需要下載pypiwin32這個函式庫,我們使用pip直接安裝。 <br/>
pip install pypiwin32
#如果下載速度過慢可以指定清除來源進行下載:<br/>
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pypiwin32
#下面我們就可以直接使用這個模組了。 <br/>
我們主要使用Dispatch這個函數,將迅雷的註冊名稱放入此函數中。來完成迅雷的載入。 <br/>
<br/>
from win32com.client import Dispatch thunder = Dispatch('ThunderAgent.Agent.1')
成功啟動迅雷之後我們就可以在迅雷裡面加入任務了。
此時我們使用AddTask方法。 <br/>
AddTask方法裡面需要傳入三個參數:<br/>
thunder.AddTask(磁力连接, 下载保存的文件名, 保存路径 )
之後我們只需要使用CommitTasks函數提交任務就可以了.<br/>
#完整程式碼如下:<br/>
from win32com.client import Dispatch thunder = Dispatch('ThunderAgent.Agent.1') 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))
程式碼就這麼多了。不過,對於迅雷,我們還需要做一些設定:
我們需要將一鍵下載勾上,在預設下載方式裡面選擇立即下載。
這樣就可以了,以下是效果影片:<br/>
#下面我們建立多個任務來進行下載,我們就拿《愛情公寓5》的資源來做個示範:<br/>
#一共36集,我們可以看到url的一些規律,可以取得36集的所有磁力連接,然後批量添加到任務中:<br/>
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(']')[1] thunder.AddTask(url, filename, r"C:\迅雷下载") print("下载任务建立:{}....".format(filename)) thunder.CommitTasks()
此時我們批量下載的任務就建立好了,可以進行自動批量下載了,效果視頻如下:
如果朋友给你的磁力连接是一个txt文件,那我们还可以读取文件每一行的磁力连接进行下载:<br/>
import csv with open("爱情公寓资源.txt", 'r', encoding='utf-8') as f: reader = csv.reader(f) films = [i[0] for i in reader] thunder = Dispatch('ThunderAgent.Agent.1') for film in films: thunder.AddTask(film, film[-12:], r"C:\迅雷下载") thunder.CommitTasks()
怎么样是不是很棒?你也来试试吧!
以上是10行Python程式碼使用磁力連結大量下載種子,你的假期再也不會無聊了!的詳細內容。更多資訊請關注PHP中文網其他相關文章!