BeautifulSoup - 在父子标签上查找

时间:2014-08-01 16:15:38

标签: python html beautifulsoup html-parsing

我正在使用bs4。

在HTML的汤中说:

<li><strong>some text</strong></li>

我想做一个会找到它的find_all。当然find_all('li')有效,但必须有一种方法来指定查找父子组合。

2 个答案:

答案 0 :(得分:7)

我认为CSS selectors就是你要问的问题:

soup.select('li > strong')

这会找到所有strong代码,这些代码都是li代码的直接子代。

演示:

>>> from bs4 import BeautifulSoup
>>> data = "<li><strong>some text</strong></li>"
>>> soup = BeautifulSoup(data)
>>> soup.select('li > strong')
[<strong>some text</strong>]

答案 1 :(得分:1)

这是另一种选择。

>>> from bs4 import BeautifulSoup
>>> data = "<li><strong>some text</strong></li>"
>>> soup = BeautifulSoup(data)
>>> soup.find('li')
<li><strong>some text</strong></li>
>>> soup.find('li').find('strong')
<strong>some text</strong>
>>> soup.find('li').find('strong').text
u'some text'
>>>