亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 urlopen 時出現 HTTP 406 Not Acceptable 客戶端錯誤

使用 urlopen 時出現 HTTP 406 Not Acceptable 客戶端錯誤

LEATH 2023-10-11 16:03:29
我正在使用urllib.request.urlopen查詢 URL http://dblp.org/db/conf/lak/index。由于某種原因,我無法使用 Python 模塊urllib 訪問該站點,因為我收到以下 HTTP 狀態代碼錯誤:HTTPError:HTTP 錯誤 406:不可接受這是我用來發出此請求的代碼:from urllib.request import urlopenfrom bs4 import BeautifulSoupurl = 'http://dblp.org/db'html = urlopen(url).read()soup = BeautifulSoup(html)print(soup.prettify())我不確定導致此錯誤的原因,我需要幫助來解決此錯誤。以下是與此錯誤相關的堆棧跟蹤:HTTPError                                 Traceback (most recent call last)<ipython-input-5-b158a1e893a0> in <module>----> 1 html = urlopen("https://dblp.org/db").read()      2 #print(html)      3 soup = BeautifulSoup(html)      4 soup.prettify()~\Anaconda3\lib\urllib\request.py in urlopen(url, data, timeout, cafile, capath, cadefault, context)    220     else:    221         opener = _opener--> 222     return opener.open(url, data, timeout)    223     224 def install_opener(opener):~\Anaconda3\lib\urllib\request.py in open(self, fullurl, data, timeout)    529         for processor in self.process_response.get(protocol, []):    530             meth = getattr(processor, meth_name)--> 531             response = meth(req, response)    532     533         return response~\Anaconda3\lib\urllib\request.py in http_response(self, request, response)    639         if not (200 <= code < 300):    640             response = self.parent.error(--> 641                 'http', request, response, code, msg, hdrs)    642     643         return response~\Anaconda3\lib\urllib\request.py in error(self, proto, *args)    567         if http_err:    568             args = (dict, 'default', 'http_error_default') + orig_args--> 569             return self._call_chain(*args)    570     571 # XXX probably also want an abstract factory that knows when it makes
查看完整描述

1 回答

?
慕虎7371278

TA貢獻1802條經驗 獲得超4個贊

我正在研究406 錯誤代碼,當服務器無法使用請求中指定的接受標頭進行響應時,就會發生這種情況。如果我能讓urlopen正常工作,我也會發布這個答案。


使用Python 請求時我沒有收到此錯誤


import requests

from bs4 import BeautifulSoup


user_agent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Firefox/78.0'

raw_html = requests.get('http://dblp.org/db/conf/lak/index')

soup = BeautifulSoup(raw_html.content, 'html.parser')

print(soup.prettify())

下面的答案使用urlopen,它不會產生 406 錯誤。


from urllib.request import Request

from urllib.request import urlopen

from bs4 import BeautifulSoup


raw_request = Request('https://dblp.org/db/conf/lak/index')

raw_request.add_header('User-Agent', 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:78.0) Gecko/20100101 Firefox/78.0')

raw_request.add_header('Accept', 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8')

resp = urlopen(raw_request)

raw_html = resp.read()

soup = BeautifulSoup(raw_html, 'html.parser')

print(soup.prettify())


查看完整回答
反對 回復 2023-10-11
  • 1 回答
  • 0 關注
  • 166 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號