喵喵程式-批次下載檔案

最近因為有大量下載的需求,比較久以前是用flashget這種下載器裡面有批次下載的功能,再去做,不過基本上這類下載器通常都是用數字去做批次,如果檔案的來源不是數字規則就會有問題,而且flashget也都不知道多久以前了,也不想為了這個再去找別的程式,就嘗試用python自己做。

基本的流程還是要先去網頁原始碼裡面查看有沒有下載的連結,通常可以用副檔名去查詢,例如.pdf、.jpg這類的,這樣可以找到原始來源的網址。再來就是觀察有沒有規則,有了規則之後就可以用迴圈去寫,在做批次下載。

我的批次規則來自一個excel檔,裡面會有連結的檔名還有我希望存檔的檔名。這邊就用pandas去讀取資料,當然如果是數字規則,直接用迴圈寫就可以了。再把網址拼出來用requests發出要求,最後把檔案存下來。

#需要安裝的套件放最前面
#pip install pandas requests

import pandas as pd
import requests

def download_url():
    df=pd.read_excel(r'files/pdf_detail.xlsx',converters={'連結名稱':str,'檔名':str})  #這邊讓資料近來都是str避免python判斷是數字的時候可能會把0123變成123
    print('Start')
i=0
j=10
while i<len(df):
url='https://download.url/'+df.iloc[i,0]+'.pdf' #拼出網址
response = requests.get(url)
open('download/'+df.iloc[i,1]+'.pdf', "wb").write(response.content)
if i/len(df)*100>j: #做一個下載百分比,不然會有點懷疑到底抓到哪裡了,或是陷入無限迴圈
print(str(int(i/len(df)*100))+'%')
j+=10
i+=1     print('Done')

留言

這個網誌中的熱門文章

喵喵程式-原生python安裝與使用

喵喵程式-tkinter日期選擇器

喵喵程式-民國年輸入與確認