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 に答える