Le problème est que vous avez trouvé un NavigableString
et non le <td>
. Aussi nextSibling
trouvera le prochain NavigableString
ou Tag
donc même si vous aviez le <td>
ça ne fonctionnerait pas comme vous le pensez.
C'est ce que vous voulez :
address = soup.find(text="Address:")
b_tag = address.parent
td_tag = b_tag.parent
next_td_tag = td_tag.findNext('td')
print next_td_tag.contents[0]
Ou plus concis :
print soup.find(text="Address:").parent.parent.findNext('td').contents[0]
En fait, vous pourriez simplement faire
print soup.find(text="Address:").findNext('td').contents[0]
Desde findNext
juste des appels next
encore et encore, et next
trouve l'élément suivant comme analysé à plusieurs reprises jusqu'à ce qu'elle corresponde.