BeautifulSoup将多个标签.text分配给变量

时间:2020-04-29 05:47:24

标签: python web-scraping beautifulsoup

假设我有一个包含以下代码的HTML网站:

<div class="random-texts">
    <p>abc</p>
    <p>def</p>
    <p>ghi</p>
</div>

我尝试使用标签= soup.select('div [class =“ random-texts”> p')”,这样做会返回一个列表:

[<p>abc</p>, <p>def</p>, <p>ghi</p>]

要提取文本,我使用for循环遍历元素:

for tag in tags:
    tag.text

abc
def
ghi

所以我的问题是,如何将段落中的所有文本存储到变量中(例如,段落文本)

print(paragraph_texts)
abc def ghi

很抱歉,这听起来像是一个显而易见的问题。

我不太懂Python。

1 个答案:

答案 0 :(得分:2)

from bs4 import BeautifulSoup

html = """<div class="random-texts">
    <p>abc</p>
    <p>def</p>
    <p>ghi</p>
</div>
"""

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

val = list(soup.select_one("div.random-texts").stripped_strings)

print(val)

# or unpacking

print(*val)

输出:

['abc', 'def', 'ghi']

abc def ghi