不使用wget从txt文件中列出的URL下载文件
问题描述:
由于无法在我的工作中安装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)
答
第二个参数,如果存在的话,则指定文件位置复制到(如果不存在,则位置为与所生成的名称的临时文件)
从docs。
你需要指定一个第二个参数指的是文件路径到该文件的内容下载到,像这样:
...
for link in linkList:
urllib.request.urlretrieve(link, link.split('/')[-1])
既然这样,你下载与临时文件一个生成的名字。我不是100%确定你是如何取回这个名字的,所以最好是自己指定文件路径。
好了,所以我的网址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
这是一个单独的问题;你想知道如何解析URL查询字符串。谷歌周围的,如果你没有运气,发布一个新的问题,戳我,我会写另一个答案。 –
@Seidhe在这里得到这个文件名的一种快速和肮脏的方式将类似于@AdamBarnes所使用的:'link.split('outputFileName =')[ - 1]'将在两个部分将链接拆分为“outputFileName = “'所以最后一部分('[-1]')将成为你的文件名。正如所提到的,挖掘URL解析的方式确实不太方便。 – jadsq