使用 BeautifulSoup 进行网页文本提取:专门提取可见文本
网页抓取通常涉及从网页中检索特定文本内容。使用广泛使用的 HTML 解析库 BeautifulSoup,您可能会遇到仅提取网页上可见文本的挑战,排除脚本、注释和 CSS 等不需要的元素。
识别可见文本
要确定特定 HTML 元素是否包含可见文本,可以使用 tag_visible 函数。此函数检查目标元素的父元素是否在一组特定的排除标签(例如样式、脚本、头部)内,或者目标元素是否是注释。如果满足任一条件,该函数将返回 False,表示该元素不被视为可见。
提取可见文本
要从网页中提取可见文本,请按照下列步骤操作:
示例用法
下面的代码演示了如何使用这些技术从网页中提取可见文本:
from bs4 import BeautifulSoup from bs4.element import Comment import urllib.request def tag_visible(element): if element.parent.name in ['style', 'script', 'head', 'title', 'meta', '[document]']: return False if isinstance(element, Comment): return False return True def text_from_html(body): soup = BeautifulSoup(body, 'html.parser') texts = soup.findAll(text=True) visible_texts = filter(tag_visible, texts) return u" ".join(t.strip() for t in visible_texts) html = urllib.request.urlopen('http://www.nytimes.com/2009/12/21/us/21storm.html').read() print(text_from_html(html))
通过利用这种方法,您可以有效地从网页中抓取可见文本页面,排除脚本、评论和其他隐藏元素中不相关的内容。
以上是如何使用 BeautifulSoup 从网页中仅提取可见文本?的详细内容。更多信息请关注PHP中文网其他相关文章!