簡體   English   中英

urllib2.urlopen引發HTTP錯誤400:錯誤請求

[英]urllib2.urlopen raises HTTP Error 400: Bad Request

我正在嘗試使用urllib2下載pdf。 問題是它引發了urllib2.HTTPError: HTTP Error 400: Bad Request

我想問題可能是網址的形式。 我試過應用urllib2.quote方法,但它沒有幫助。

網址: http://www.epi.sk/Main/Download.aspx?fn=\\OV\\15\\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\\OV2015072a.pdfhttp://www.epi.sk/Main/Download.aspx?fn=\\OV\\15\\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\\OV2015072a.pdf fn = http://www.epi.sk/Main/Download.aspx?fn=\\OV\\15\\OV2015072a$ce10308b-264c-400a-81ad-e643c08a7364.pdf&ofn=15\\OV2015072a.pdf e643c08a7364.pdf& 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'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM