靓汤提取液及其ID含量

2024-04-26 00:08:28 发布

您现在位置:Python中文网/ 问答频道 /正文

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

为什么不返回<div id="articlebody"> ... </div>标记和介于两者之间的内容?它什么也不返回。我知道它的存在是因为我正盯着它

soup.prettify()

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

编辑:此帖子没有答案-如何删除?我发现BeautifulSoup没有正确解析,这可能实际上意味着我试图解析的页面没有用SGML或其他格式正确格式化。


Tags: 答案标记divid编辑内容页面find
3条回答

靓汤4支持大多数带有^{} methodCSS selectors,因此可以使用^{} selector,例如:

soup.select('#articlebody')

如果需要指定元素的类型,可以在id选择器之前添加type selector

soup.select('div#articlebody')

.select()方法将返回一个元素集合,这意味着它将返回与下面的^{} method示例相同的结果:

soup.find_all('div', id="articlebody")
# or
soup.find_all(id="articlebody")

如果只想选择一个元素,那么可以使用^{} method

soup.find('div', id="articlebody")
# or
soup.find(id="articlebody")

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

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

<div>s内部查找<div>s也可以:

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

要通过元素的id查找元素:

div = soup.find(id="articlebody")

相关问题 更多 >