2010-08-15 2 views
2

dire que je référence à un élément à l'intérieur d'une table dans une page HTML comme ceci:Utilisation de BeautifulSoup, Puis-je rapidement passer à un élément parent spécifique?

someEl = soup.findAll(text = "some text") 

Je sais que cet élément est intégré dans une table, est-il un moyen de trouver la table parent sans avoir à appeler .parent tant de fois?

<table...> 

.. 
.. 
<tr>....<td><center><font..><b>some text</b></font></center></td>....<tr> 

<table> 

Répondre

1
while someEl.name != "table": 
    someEl = someEl.parent 
# someEl is now the table 
5

Check out findParents, il a une forme similaire à findAll:

soup = BeautifulSoup("<table>...</table>") 

for text in soup.findAll(text='some text') 
    table = text.findParents('table')[0] 
    # table is your now your most recent `<table>` parent 

Voici the docs pour findAllPrevious et aussi findParents.

Questions connexes