Python BeautifulSoup get_text() 方法
BeautifulSoup 是一个 Python 库,用于从 HTML 和 XML 文件中提取数据。get_text() 方法是 BeautifulSoup 提供的一个用于获取 HTML 或 XML 中的文本内容的方法。
在 BeautifulSoup 中,HTML 或 XML 文件都被解析成了一个树形结构。使用 get_text() 方法就可以遍历整个树形结构,并提取其中的文本内容。
get_text() 方法的常用参数包括:
- separator:指定文本内容之间使用什么字符进行分隔,默认为换行符"\n"。
- strip:指定是否要去除文本内容前后的空格,默认为 True。
- filter:指定一个函数作为过滤器,用于过滤不需要的文本内容。
下面是一个示例代码,演示如何使用 get_text() 方法从一个 HTML 中提取文本内容:
import requests from bs4 import BeautifulSoup url = "https://www.pidancode.com/" r = requests.get(url) soup = BeautifulSoup(r.content, "html.parser") text = soup.get_text(separator=" ", strip=True) print(text)
这个代码会从 https://www.pidancode.com/ 这个网页中获取 HTML 内容,并使用 BeautifulSoup 解析成树形结构。然后调用 get_text() 方法,将网页中的所有文本内容提取出来,并使用空格进行分隔,去除前后空格。最后将提取出来的文本内容打印出来。
如果需要过滤掉某些不需要的文本内容,可以将一个函数作为 filter 参数传入 get_text() 方法中。这个函数接收一个字符串作为参数,并返回一个布尔值,表示是否要保留这个字符串。下面是一个示例代码,演示如何使用 filter 参数过滤掉某些文本内容:
import requests from bs4 import BeautifulSoup def filter_text(text): return "皮蛋编程" not in text url = "https://www.pidancode.com/" r = requests.get(url) soup = BeautifulSoup(r.content, "html.parser") text = soup.get_text(separator=" ", strip=True, filter=filter_text) print(text)
这个代码和前一个代码基本一样,只是多了一个 filter_text() 函数。这个函数返回一个布尔值,表示传入的字符串中是否包含“皮蛋编程”。然后将这个函数作为 filter 参数传入 get_text() 方法中,这就会过滤掉所有包含“皮蛋编程”的文本内容。
相关文章