2

我有一个html代码:

<table>
<tr>
   <td><table><tr><td>1</td></tr><tr><td>2</td></tr></table></td>
</tr>
<tr>
   <td><table><tr><td>3</td></tr><tr><td>4</td></tr></table></td>
</tr>
</table>

我想在第一个表中找到所有 tr 。我通常使用

for tr in soup.findAll('tr'):

但我会得到所有的 tr(主表和子表中的 tr)。如何仅在主表中获取 tr?

4

1 回答 1

2

这个怎么样?

from bs4 import BeautifulSoup

soup = BeautifulSoup("""
<table>
<tr>
   <td><table><tr><td>1</td></tr><tr><td>2</td></tr></table></td>
</tr>
<tr>
   <td><table><tr><td>3</td></tr><tr><td>4</td></tr></table></td>
</tr>
</table>
""")

for tr in soup.find('table').find_all('tr', recursive=False):
    print tr

recursive=False有助于仅查找顶级标签(请参阅docs)。

于 2013-07-12T11:02:06.543 回答