2017-10-18 125 views
1

由於無法在我的工作中安裝wget庫,因此需要使用txt文件中列出的URL下載文件的解決方法。我有一個名爲urls.txt的txt文件,其中包含大約一千個鏈接,每個鏈接指向需要下載的文件。到目前爲止,我有這樣的東西,但不幸的是,它不會下載任何文件,儘管腳本正在執行。不使用wget從txt文件中列出的URL下載文件

import urllib.request 

with open("urls.txt", "r") as file: 
    linkList = file.readlines() 
for link in linkList: 
    urllib.request.urlretrieve(link) 

回答

1

第二個參數,如果存在的話,則指定文件位置複製到(如果不存在,則位置爲與所生成的名稱的臨時文件)

docs

你需要指定一個第二個參數指的是文件路徑到該文件的內容下載到,像這樣:

... 
for link in linkList: 
    urllib.request.urlretrieve(link, link.split('/')[-1]) 

既然這樣,你下載與臨時文件一個生成的名字。我不是100%確定你是如何取回這個名字的,所以最好是自己指定文件路徑。

+0

好了,所以我的網址ADRESS是像/DocumentXML2XLSDownload.vm?firsttime=true&repengback=true&documentId=XXXXXX&xslFileName=rher2xml.xsl&outputFileName=XXXX_2017_06_25_4.xls,我想每一個文件的最後部分「XXXX_2017_06_25_4.xls」來命名,並放入在腳本的目錄中。我應該如何繼續?我對Python完全陌生,仍然試圖弄清楚哪個短語意味着什麼。 – Seidhe

+0

這是一個單獨的問題;你想知道如何解析URL查詢字符串。谷歌周圍的,如果你沒有運氣,發佈一個新的問題,戳我,我會寫另一個答案。 –

+0

@Seidhe在這裏得到這個文件名的一種快速和骯髒的方式將類似於@AdamBarnes所使用的:'link.split('outputFileName =')[ - 1]'將在兩個部分將鏈接拆分爲「outputFileName = 「'所以最後一部分('[-1]')將成爲你的文件名。正如所提到的,挖掘URL解析的方式確實不太方便。 – jadsq