喵喵程式-批次下載檔案
最近因為有大量下載的需求,比較久以前是用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))+'...