【问题标题】:parsing the page with Beautifulsoup html.parser returns empty response使用 Beautifulsoup html.parser 解析页面返回空响应
【发布时间】:2018-12-07 01:22:26
【问题描述】:

我写了这段小代码。它以前工作正常,但现在它返回一个空响应。我完全不知道为什么它不起作用。我已经多次更改了我的代码,并且还使用了不同的解析器,如 lxml 无济于事。一般来说,我是编码新手,所以由于没有实际的运行时错误,我真的很困惑。你能帮我理解为什么soup = BeautifulSoup(page_content, 'html.parser')什么都不返回吗?

这是一小段代码:

import urllib3
from bs4 import BeautifulSoup

open_page = 'google.com'
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
manager = urllib3.PoolManager(1)
page_content = manager.urlopen('GET',open_page)
print(page_content)
soup = BeautifulSoup(page_content, 'html.parser')
print(soup)

【问题讨论】:

  • 您是否尝试添加标题?谷歌可能会阻止您的请求,因为它看起来很可疑。
  • @hansTheFranz 每个网站都有这个问题。我也尝试只使用 HTTP。但它并没有解决问题。也在不同的系统上使用它。

标签: python-3.x beautifulsoup html-parsing


【解决方案1】:

看起来您可能已经从 urllib2 切换到 urllib3,它具有不同的界面。您对 BeautifulSoup 的调用需要有所不同:

soup = BeautifulSoup(page_content.data, 'html.parser')

它使用url open返回的响应对象的.data成员。

【讨论】:

  • 那太美了。我被这个困了两天!非常感谢。有趣的是,我确实尝试了 .data 成员,但方法错误。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 2018-01-11
  • 2014-01-30
  • 2015-11-02
相关资源
最近更新 更多