python怎样提取html中所有中文

张裕  论坛元老 | 2024-6-28 12:51:50 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 1553|帖子 1553|积分 4659

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
要从HTML中提取所有的中文文本,你可以使用Python的HTML解析库如BeautifulSoup来遍历HTML文档,并筛选出中文文本。以下是一个简朴的示例,阐明怎样使用BeautifulSoup和正则表达式来提取HTML中的所有中文:
  1. from bs4 import BeautifulSoup
  2. import re
  3. def extract_chinese_text_from_html(html_content):
  4.     soup = BeautifulSoup(html_content, 'html.parser')
  5.     chinese_text = []
  6.     # 遍历HTML文档中的所有文本节点
  7.     for text in soup.find_all(text=True):
  8.         # 使用正则表达式匹配中文
  9.         chinese_matches = re.findall(r'[\u4e00-\u9fa5]+', text)
  10.         if chinese_matches:
  11.             # 将匹配到的中文添加到列表中
  12.             chinese_text.extend(chinese_matches)
  13.     # 将列表中的中文元素连接成一个字符串
  14.     return ''.join(chinese_text)
  15. # 示例HTML内容
  16. html_content = '''
  17. <html>
  18. <head><title>测试页面</title></head>
  19. <body>
  20.     <p>这是一段包含中文的文本。</p>
  21.     <div>还有<span>更多</span>的中文。</div>
  22.     <script>这里不应该提取// comment in script</script>
  23. </body>
  24. </html>
  25. '''
  26. # 提取中文
  27. chinese_text = extract_chinese_text_from_html(html_content)
  28. print(chinese_text)  # 输出: 这是一段包含中文的文本。还有更多的中文。
复制代码
在这个示例中,我们定义了一个函数extract_chinese_text_from_html,它接受HTML内容作为输入,并使用BeautifulSoup来解析HTML。然后,我们遍历所有文本节点,并使用正则表达式[\u4e00-\u9fa5]+来匹配中文字符。这个正则表达式匹配的是Unicode范围中的中文字符。最后,我们将匹配到的中文文本连接成一个字符串并返回。
  注意,这个示例不会提取包含在<script>和<style>标签中的中文,因为这些通常包含的是代码而不是可显示的文本。假如你必要处理这些标签中的文本,你必要添加额外的逻辑来跳过这些标签或单独处理它们。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! 更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

张裕

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表