0

使用 BeautifulSoup,我想选择所有具有“main”类的表,这些表尚未被选为相同元素的后代。在 lxml 中,以下代码有效:

root.xpath('//table[@class="main" and not(ancestor::table[@class="main"])]')

但是我怎么能在 BeautifulSoup 中做到这一点?

谢谢你的帮助!:)

4

1 回答 1

2

这可能不是最有效的解决方案,但它应该可以工作:

nested_tables = soup.select('table.main table.main')
tables = [t for t in soup.select('table.main') if t not in nested_tables]

你也可以这样做:

tables = [t for t in soup.select('table.main') 
          if not t.find_parents('table', class_='main')]
于 2013-09-09T11:59:39.247 回答