我正在尝试使用 urllib2 下载 pdf。问题是它会引发 urllib2.HTTPError: HTTP Error 400: Bad Request
。
我认为问题可能出在 url 的形式上。我尝试应用 urllib2.quote 方法,但没有帮助。
网址:http://www.epi.sk/Main/Download.aspx?fn=\OV\15\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\15\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf','files.pdf')
你知道问题出在哪里吗?
最佳答案
其中一个反斜杠导致字符串的一部分被解释为转义序列:
'http://www.epi.sk/Main/Download.aspx?fn=\OV\15\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf'
^^^
\15
被解释为回车符的转义序列:
>>> '\15'
'\r'
通过在字符串前面添加 r
使其成为原始字符串,Python 将不会解释这些转义序列:
>>> r'\15'
'\\15'
关于python - urllib2.urlopen 引发 HTTP 错误 400 : Bad Request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29718659/