urllib2.urlopen 引发 HTTP 错误 400:错误请求
urllib2.urlopen raises HTTP Error 400: Bad Request
我正在尝试使用 urllib2 下载 pdf。问题是它引发了 urllib2.HTTPError: HTTP Error 400: Bad Request
.
我想问题可能是 url 的形式。我已经尝试应用 urllib2.quote
方法,但它没有帮助。
URL: http://www.epi.sk/Main/Download.aspx?fn=\OV\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf
def download_file(download_url,name):
response = urllib2.urlopen(download_url)
with open(name, 'wb') as file:
file.write(response.read())
download_file('http://www.epi.sk/Main/Download.aspx?fn=\OV\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf','files.pdf')
您知道问题出在哪里吗?
您的一个反斜杠导致您的一部分字符串被解释为转义序列:
'http://www.epi.sk/Main/Download.aspx?fn=\OV\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf'
^^^
</code> 被解释为一个转义序列 return:</p>
<pre><code>>>> ''
'\r'
通过在字符串前面加上 r
使字符串成为原始字符串,并且 Python 不会解释这些转义序列:
>>> r''
'\15'
我正在尝试使用 urllib2 下载 pdf。问题是它引发了 urllib2.HTTPError: HTTP Error 400: Bad Request
.
我想问题可能是 url 的形式。我已经尝试应用 urllib2.quote
方法,但它没有帮助。
URL: http://www.epi.sk/Main/Download.aspx?fn=\OV\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf
def download_file(download_url,name):
response = urllib2.urlopen(download_url)
with open(name, 'wb') as file:
file.write(response.read())
download_file('http://www.epi.sk/Main/Download.aspx?fn=\OV\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf','files.pdf')
您知道问题出在哪里吗?
您的一个反斜杠导致您的一部分字符串被解释为转义序列:
'http://www.epi.sk/Main/Download.aspx?fn=\OV\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf'
^^^
</code> 被解释为一个转义序列 return:</p>
<pre><code>>>> ''
'\r'
通过在字符串前面加上 r
使字符串成为原始字符串,并且 Python 不会解释这些转义序列:
>>> r''
'\15'