Skip to main content
 首页 » 编程设计

python之无法使用 requests.get(url) 运行 BeautifulSoup

2025年05月04日19leader

start_url=requests.get('http://www.delicious.com/golisoda') 
soup=BeautifulSoup(start_url) 

此代码显示以下错误:

Traceback (most recent call last): 
  File "test2_requests.py", line 10, in <module> 
    soup=BeautifulSoup(start_url) 
  File "/usr/local/lib/python2.7/dist-packages/bs4/__init__.py", line 169, in __init__ 
    self.builder.prepare_markup(markup, from_encoding)) 
  File "/usr/local/lib/python2.7/dist-packages/bs4/builder/_lxml.py", line 68, in prepare_markup 
    dammit = UnicodeDammit(markup, try_encodings, is_html=True) 
  File "/usr/local/lib/python2.7/dist-packages/bs4/dammit.py", line 203, in __init__ 
    self._detectEncoding(markup, is_html) 
  File "/usr/local/lib/python2.7/dist-packages/bs4/dammit.py", line 373, in _detectEncoding 
    xml_encoding_match = xml_encoding_re.match(xml_data) 
TypeError: expected string or buffer 

请您参考如下方法:

使用响应的.content:

start_url = requests.get('http://www.delicious.com/golisoda') 
soup = BeautifulSoup(start_url.content) 

或者,您可以使用解码后的 unicode 文本:

start_url = requests.get('http://www.delicious.com/golisoda') 
soup = BeautifulSoup(start_url.text) 

参见 Response content section的文档。