BeautifulSoup 选择内部 HTML 包含多个单词的位置

问题描述 投票:0回答:1

有没有一种方法可以让我使用 BeautifulSoup 来获取包含多个单词的标签文本?

例如,如果我有 HTML:

<div>
    <div>
        <a>hello there</a>
        <a>hi</a>
    </div>
    <a>what's up</a>
    <a>stackoverflow</a>
</div>

...我只想得到

hello there what's up

python html dom beautifulsoup
1个回答
0
投票

您绝对可以使用 BeautifulSoup 从包含多个单词的 HTML 标签中提取文本。在您的示例中,您想要从具有多单词内容的标签中提取文本。以下是如何在 Python 中使用 BeautifulSoup 来实现这一点。

from bs4 import BeautifulSoup

html = '''
<div>
    <div>
        <a>hello there</a>
        <a>hi</a>
    </div>
    <a>what's up</a>
    <a>stackoverflow</a>
</div>
'''

soup = BeautifulSoup(html, 'html.parser')

target_tags = soup.find_all('a')  # Find all <a> tags
multi_word_texts = []

for tag in target_tags:
    if ' ' in tag.get_text():  # Check if the tag text contains a space (indicating multiple words)
        multi_word_texts.append(tag.get_text())

result = ' '.join(multi_word_texts)
print(result)
© www.soinside.com 2019 - 2024. All rights reserved.