BeautifulSoup: Получить текст тега до определенного тега - PullRequest
0 голосов
/ 29 мая 2018

Я хотел бы получить весь отображаемый текст на странице HTML, пока не будет достигнут определенный тег.Например, я хотел бы получить весь отображаемый текст на странице, пока не будет достигнут тег с идентификатором «end_content».

Есть ли способ сделать это с BeautifulSoup?Это будет похоже на метод soup.get_text (), за исключением того, что он просто прекратит извлекать текст после попадания в тег с идентификатором «end_content».

1 Ответ

0 голосов
/ 29 мая 2018

Я бы сделал следующее:

html = (
    '<h1>HEY!</h1>'
    '<div>'
        'How are'
        '<h2>you?</h2>'
        '<div id="end_content">END</div>'
    '</div>'
    'Some other text'
)

soup = BeautifulSoup(html, 'lxml')
>>> soup.select_one('#end_content').find_all_previous(string=True)[::-1]
['HEY!', 'How are', 'you?']
...