ApX 标志

趋近智

Copyright 2023. Some footer links.

\"\"\" soup = BeautifulSoup(html_doc, 'lxml') # 使用lxml解析器 # 获取所有文本,去除标签 all_text = soup.get_text(separator=' ', strip=True) print(\"所有文本(包含样板内容):\") print(all_text) # 输出:Sample Page Main Title Home About 这是我们希望保留的主要文章 # 内容。它讨论了重要主题。另一个有用的信息段落。console.log('Some script'); 版权所有 # 2023。一些页脚链接。 # 尝试只获取主要内容文本(简单示例) main_content_tag = soup.find('main') if main_content_tag: main_text = main_content_tag.get_text(separator=' ', strip=True) print(\"\\n主要内容文本(简单提取):\") print(main_text) # 输出:这是我们希望保留的主要文章内容。它 # 讨论了重要主题。另一个有用的信息段落。console.log('Some script'); else: print(\"\\n未找到'main'标签。\")正如示例所示,简单地对整个文档调用 get_text() 通常会包含来自页眉、页脚以及(如果包含文本节点)脚本的不必要文本。虽然查找像
这样的特定标签会有所帮助,但这依赖于语义化HTML的使用,而这在不同网站之间并不总是一致的。还要注意到,上述简单提取仍然包含了

Copyright 2023. Some footer links.

\"\"\" soup = BeautifulSoup(html_doc, 'lxml') # 要删除的标签 tags_to_remove = ['script', 'style', 'nav', 'header', 'footer', 'aside'] # 也删除通过常见样板内容类/ID识别的元素(示例) selectors_to_remove = ['.sidebar', '#ads'] for tag_name in tags_to_remove: for tag in soup.find_all(tag_name): tag.decompose() # 删除标签及其内容 for selector in selectors_to_remove: for tag in soup.select(selector): # 使用CSS选择器 tag.decompose() # 从修改后的BeautifulSoup对象中提取文本 cleaned_text = soup.get_text(separator=' ', strip=True) print(\"基于规则删除后的文本:\") print(cleaned_text) # 输出:示例页面 这是我们希望保留的主要文章内容。 # 它讨论了重要主题。另一个有用的信息段落。尽管基于规则的方法在移除显而易见的样板内容方面很有效,但它们也有限制。它们可能很脆弱;网站内容结构各异,依赖
等特定标签或 sidebar 等类名并非普遍可靠。如果例如,图的标题放在