Python BeautifulSoup的get_text()方法详解

2023-04-17 00:00:00 python beautifulsoup

Python BeautifulSoup的get_text()方法是用来从HTML或XML文档中获取所有的文本内容。它会遍历整个文档,将所有的标签和属性去除,并将剩下的纯文本内容合并为一个字符串返回。以下是get_text()方法的详解:

语法:

get_text(self, separator=u'', strip=False)

参数:
- separator:可选的分隔符,默认为空字符串。
- strip:是否删除前后空格,默认为False。

使用示例:

假设我们有一个HTML文档如下:

<html>
    <head>
        <title>pidancode.com</title>
    </head>
    <body>
        <h1>欢迎来到皮蛋编程!</h1>
        <p>我们一起来学习Python吧!</p>
        <ul>
            <li>Python基础教程</li>
            <li>Python爬虫教程</li>
            <li>Python数据分析教程</li>
        </ul>
    </body>
</html>

我们可以使用以下代码片段从上面的文档中获取所有的文本内容:

from bs4 import BeautifulSoup

html_doc = """
<html>
    <head>
        <title>pidancode.com</title>
    </head>
    <body>
        <h1>欢迎来到皮蛋编程!</h1>
        <p>我们一起来学习Python吧!</p>
        <ul>
            <li>Python基础教程</li>
            <li>Python爬虫教程</li>
            <li>Python数据分析教程</li>
        </ul>
    </body>
</html>
"""

soup = BeautifulSoup(html_doc, 'html.parser')
text = soup.get_text()

print(text)

输出结果为:

pidancode.com

欢迎来到皮蛋编程!

我们一起来学习Python吧!

Python基础教程
Python爬虫教程
Python数据分析教程

从输出结果可以看出,get_text()方法已经正确地提取出了HTML文档中的文本内容,并将它们合并为了一个字符串。同时,我们还可以使用分隔符和strip参数对输出结果进行格式化,具体方法如下:

text = soup.get_text(separator='\n', strip=True)
print(text)

输出结果为:

pidancode.com
欢迎来到皮蛋编程!
我们一起来学习Python吧!
Python基础教程
Python爬虫教程
Python数据分析教程

在上述代码中,我们使用了换行符作为分隔符,使用strip=True删除了输出结果中的空格。

相关文章