我正在寻找一种更快捷的方式来完成我的任务。我有40000文件可下载的网址。我想在本地桌面上下载它们。现在我想到的是将链接放在浏览器上,然后通过脚本下载它们。现在我要找的是将10个网址放入一个块中地址栏并同时下载10个文件。如果可能希望整体时间减少。
抱歉,我迟到了代码,现在是:
def _download_file(url, filename):
"""
Given a URL and a filename, this method will save a file locally to the»
destination_directory path.
"""
if not os.path.exists(destination_directory):
print 'Directory [%s] does not exist, Creating directory...' % destination_directory
os.makedirs(destination_directory)
try:
urllib.urlretrieve(url, os.path.join(destination_directory, filename))
print 'Downloading File [%s]' % (filename)
except:
print 'Error Downloading File [%s]' % (filename)
def _download_all(main_url):
"""
Given a URL list, this method will download each file in the destination
directory.
"""
url_list = _create_url_list(main_url)
for url in url_list:
_download_file(url, _get_file_name(url))
谢谢,
答案 0 :(得分:2)
为什么要使用浏览器?这似乎是XY problem。
要下载文件,我会使用requests之类的库(或对wget
进行系统调用)。
这样的事情:
import requests
def download_file_from_url(url, file_save_path):
r = requests.get(url)
if r.ok: # checks if the download succeeded
with file(file_save_path, 'w') as f:
f.write(r.content)
return True
else:
return r.status_code
download_file_from_url('http://imgs.xkcd.com/comics/tech_support_cheat_sheet.png', 'new_image.png')
# will download image and save to current directory as 'new_image.png'
首先必须使用您喜欢的任何python包管理器安装请求,例如pip install requests
。你也可以变得更加漂亮;例如,