urllib2.urlopen引发HTTP错误400:错误请求

2024-05-14 06:12:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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')

你知道问题出在哪里吗?在


Tags: httpurlpdfmaindownloadwwwurllib2file
1条回答
网友
1楼 · 发布于 2024-05-14 06:12:45

其中一个反斜杠导致字符串的一部分被解释为转义序列:

'http://www.epi.sk/Main/Download.aspx?fn=\OV\15\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\OV2015072a.pdf'
                                            ^^^

\15被解释为回车的转义序列:

^{pr2}$

通过在字符串前面加上r使其成为原始字符串,Python不会解释这些转义序列:

>>> r'\15'
'\\15'

相关问题 更多 >