python - urllib2.urlopen 引发 HTTP 错误 400 : Bad Request

标签 python url pdf download urllib2

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

相关文章:

url - 为什么 azure 的 CloudBlockBlob.Uri.AbsoluteUri 返回 HTTPS : for the blobls url?

javascript - jQuery - 循环遍历 div 从一个链接中提取 url,然后将其添加到另一个链接

php - '?doing_wp_cron='

HtmlRenderer 和 PDFsharp 为每个页面添加页脚

image - 使用 Apache Tika 从 PDF 中提取图像

python - 匹配并删除文件中的字符串

python - Python 中有基于事件编程的模块吗

php - 用mysql和php打开pdf

Python:将csv文件中的行数据放入列表中

python - 在蛇中用图像替换立方体