2017-10-18 103 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