我正试着用python从一个网站下载一些东西。我在windows cmd中有一些来自批处理文件的代码,该批处理文件使用
wget --content-disposition "url"我希望能够在python脚本中做到这一点。我该怎么做?到目前为止我已经
for name,ID in stations[stationid==26887]:
count=0
for y in year:
for m in month:
url = "http://climate.weather.gc.ca/climate_data/bulk_data_e.html?format=csv&stationID="+str(ID)+"&Year="+str(y)+"&Month="+str(m)+"&Day=14&timeframe=1&submit= Download+Data"
print(url)
urllib.request.urlretrieve(url, str(count)+".csv")
count=count+1我得到了一个错误 HTTPError: HTTP Error 400: Bad Request。我认为这与没有--content-disposition参数有关。python模块中是否存在与cmd中正在执行的操作相匹配的参数?如果我只需将url复制并粘贴到web浏览器中,它就会立即开始下载一个具有自己独特名称的.csv文件。不知道为什么这不适用于python。以下是我打印url:e.html?format=csv&stationID=26887&Year=2018&Month=8&Day=14&timeframe=1&submit=Download+Data时得到的信息
发布于 2018-05-09 19:26:37
尝试使用urllib.request。
import urllib.request
url = '<your url>'
urllib.request.urlretrieve(url, 'file.ext')现在,您的文件应该位于python的当前工作目录中。
您可以找到如下所示的当前工作目录:
import os
os.getcwd()
# 'C:\\Python' would similar to the output if you are on windows如果您只想拥有一个默认文件名为下载文件名的download函数,您可以这样定义这个函数。
def download(url, filename=url.split('/')[-1]):
return urllib.request.urlretrieve(url, filename)
# This should download a file into your current working directory
download(url)发布于 2018-05-09 19:50:54
python wget根本不是wget。
从他们的医生那里他们说
wget.py不能与Unix实用程序兼容,从而使命令行界面更加直观。
@nanomosfet有一个很好的答案
如果您打算使用wget,您可以使用子流程模块来调用真正的wget。
https://stackoverflow.com/questions/50260574
复制相似问题