我正在使用BeautifulSoup来解析一些HTML . 假设我在BeautifulSoup中有以下HTML,叫做汤:
<td class="1">test1</td>
<td>test2</td>
<td class="3"><a href="/">test3</a></td>
<td><div class="test4"><a class="test4" href="/">test4</a></div></td>
<td><div class="test4"><a class="test4" href="/">test4</a></div></td>
我可以通过以下方式获取所有'td'标记的项目:
soup.findAll("td")
但是,如何才能找到包含test4类的div的'td'标签?或者用test4包围'a'标签?
我知道我可以找到带有属性的标签,例如:
soup.findAll("a", {"class":"test4"})
但是我需要将它与最初的'td'搜索结合起来,这样我就会抛弃所有不包含'a'或'div'标签的'td'标签 .
想法?谢谢!
2 回答
这仅适用于test4元素的直接父元素是td,但它应该让您了解如何进行更复杂的查询:
我就是这样做的:
当然,您可以根据需要增加粒度,但是对于提供的html,这可以完成工作 .