Beautiful Soup 并通过 ID 提取 div 及其内容

问题描述

您应该发布您的示例文档,因为代码可以正常工作:

>>> import BeautifulSoup
>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div id="articlebody"> ... </div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>

<div>在s 中查找s<div>也可以:

>>> soup = BeautifulSoup.BeautifulSoup('<html><body><div><div id="articlebody"> ... </div></div></body></html')
>>> soup.find("div", {"id": "articlebody"})
<div id="articlebody"> ... </div>

解决方法

soup.find("tagName",{ "id" : "articlebody" })

为什么这不返回<div id="articlebody"> ... </div>标签和中间的东西?它什么也不返回。我知道它的存在是因为我正盯着它看

soup.prettify()

soup.find("div",{ "id" : "articlebody" })也不起作用。

编辑: 我发现 BeautifulSoup 没有正确解析我的页面,这可能意味着我试图解析的页面没有正确格式化为 SGML 或其他格式)