首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python的wget -内容处理

使用python的wget -内容处理
EN

Stack Overflow用户
提问于 2018-05-09 19:16:15
回答 2查看 563关注 0票数 1

我正试着用python从一个网站下载一些东西。我在windows cmd中有一些来自批处理文件的代码,该批处理文件使用

代码语言:javascript
复制
wget --content-disposition "url"

我希望能够在python脚本中做到这一点。我该怎么做?到目前为止我已经

代码语言:javascript
复制
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时得到的信息

EN

回答 2

Stack Overflow用户

发布于 2018-05-09 19:26:37

尝试使用urllib.request

代码语言:javascript
复制
import urllib.request
url = '<your url>'
urllib.request.urlretrieve(url, 'file.ext')

现在,您的文件应该位于python的当前工作目录中。

您可以找到如下所示的当前工作目录:

代码语言:javascript
复制
import os
os.getcwd()
# 'C:\\Python' would similar to the output if you are on windows

如果您只想拥有一个默认文件名为下载文件名的download函数,您可以这样定义这个函数。

代码语言:javascript
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2018-05-09 19:50:54

python wget根本不是wget。

从他们的医生那里他们说

wget.py不能与Unix实用程序兼容,从而使命令行界面更加直观。

@nanomosfet有一个很好的答案

如果您打算使用wget,您可以使用子流程模块来调用真正的wget。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50260574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档