2 votes

BeautifulSoup : Impossible d'obtenir l'élément suivant

J'essaie d'obtenir uniquement le titre eBay sans le texte "Détails sur". J'ai essayé d'utiliser "next_sibling" mais cela ne fonctionne pas.

 title_BeautifulSoup = bs.find('h1', {'id': 'itemTitle'}).next_sibling
 # What I get in return: <div id="vi-itt-filler"></div>

enter image description here

Code entier : https://pastebin.com/4NFLGDpp

1voto

KunduK Points 26770

Vous pouvez utiliser find_next('span') et .next_element.next_element

title_BeautifulSoup = bs.find('h1', {'id': 'itemTitle'}).find_next('span').next_element.next_element
print(title_BeautifulSoup)

OU contenu et prendre l'index 1

title_BeautifulSoup = bs.find('h1', {'id': 'itemTitle'}).contents
print(title_BeautifulSoup[1])

Sortie :

Invicta Men's Watch Pro Diver Quartz Black Dial Dive Quartz Bracelet 8932OB

0voto

QHarr Points 24420

Vous pouvez utiliser stripped_strings et prendre l'index -1

title_BeautifulSoup = [s for s in bs.select_one('#itemTitle').stripped_strings][-1]

Ou passer à autre chose qu'à l'enjambement de l'enfant

title_BeautifulSoup = bs.select_one('#itemTitle .g-hdn').next_sibling

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X