BeautifulSoup: невозможно получить следующий элемент - PullRequest
2 голосов
/ 29 сентября 2019

Я пытаюсь получить только заголовок eBay без текста «Подробнее о».Я пытался использовать "next_sibling", но это не работает.

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

enter image description here

Весь код: https://pastebin.com/4NFLGDpp

Ответы [ 2 ]

1 голос
/ 29 сентября 2019

Вы можете использовать find_next ('span') и .next_element.next_element

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

ИЛИ содержимое и взять индекс 1

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

Выход:

Invicta Men's Watch Pro Diver Quartz Black Dial Dive Quartz Bracelet 8932OB
0 голосов
/ 29 сентября 2019

Вы можете использовать stripped_strings и взять индекс -1

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

или перейти от дочернего диапазона

title_BeautifulSoup = bs.select_one('#itemTitle .g-hdn').next_sibling
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...