当前位置:  开发笔记 > 编程语言 > 正文

使用BeautifulSoup提取CData

如何解决《使用BeautifulSoup提取CData》经验,为你挑选了1个好方法。

我正在尝试使用bs4/Python 3中的BeautifulSoup来提取CData.但是,每当我使用以下内容搜索它时,它都会返回一个空结果.谁能指出我做错了什么?

from bs4 import BeautifulSoup,CData

txt = '''We have
         
         and more.
         '''
soup = BeautifulSoup(txt)
for cd in soup.findAll(text=True):
    if isinstance(cd, CData):
        print('CData contents: %r' % cd)

Ryan Heathco.. 10

问题似乎是默认解析器无法正确解析CDATA.如果指定了正确的解析器,CDATA将显示:

soup = BeautifulSoup(txt,'html.parser')

有关解析器的更多信息,请参阅文档

我通过使用诊断函数来实现这一点,文档建议:

如果您对Beautiful Soup有疑问或遇到问题,请发送邮件给讨论组.如果您的问题涉及解析HTML文档,请务必提及diagnose()函数对该文档的说明.

使用diagnose()函数可以输出不同解析器如何看到您的html,这使您可以为您的用例选择正确的解析器.



1> Ryan Heathco..:

问题似乎是默认解析器无法正确解析CDATA.如果指定了正确的解析器,CDATA将显示:

soup = BeautifulSoup(txt,'html.parser')

有关解析器的更多信息,请参阅文档

我通过使用诊断函数来实现这一点,文档建议:

如果您对Beautiful Soup有疑问或遇到问题,请发送邮件给讨论组.如果您的问题涉及解析HTML文档,请务必提及diagnose()函数对该文档的说明.

使用diagnose()函数可以输出不同解析器如何看到您的html,这使您可以为您的用例选择正确的解析器.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有