python – 使用BeautifulSoup基于内容值提取标记内容

python – 使用BeautifulSoup基于内容值提取标记内容,第1张

概述我有一个以下格式的 Html文档. <p>1. Content of the paragraph <i> in italic </i> but not <b> strong </b> <a href="url">ignore</a>.</p> 我想提取段落标记内容,包括斜体和粗体标记的内容,但不包含锚标记的内容.此外,可能在开头忽略数字. 预期的产出是: 该段 我有一个以下格式的 Html文档.

<p>&nbsp;&nbsp;&nbsp;1. Content of the paragraph <i> in italic </i> but not <b> strong </b> <a href="url">ignore</a>.</p>

我想提取段落标记的内容,包括斜体和粗体标记的内容,但不包含锚标记的内容.此外,可能在开头忽略数字.

预期的产出是:
该段内容以斜体显示但不强.

最好的方法是什么?

此外,以下代码片段返回TypeError:类型为“nonetype”的参数不可迭代

soup = BSoup(page)for p in soup.findAll('p'):    if '&nbsp;&nbsp;&nbsp;' in p.string:        print p

谢谢你的建议.

解决方法 您的代码失败,因为如果标记只有一个子节点并且该子节点是NavigableString,则设置tag.string

您可以通过提取标签来实现您想要的效果:

from BeautifulSoup import BeautifulSoups = """<p>&nbsp;&nbsp;&nbsp;1. Content of the paragraph <i> in italic </i> but not <b> strong </b> <a href="url">ignore</a>.</p>"""soup = BeautifulSoup(s,convertEntitIEs=BeautifulSoup.HTML_ENTITIES)for p in soup.findAll('p'):    for a in p.findAll('a'):        a.extract()    print ''.join(p.findAll(text=True))
总结

以上是内存溢出为你收集整理的python – 使用BeautifulSoup基于内容值提取标记内容全部内容,希望文章能够帮你解决python – 使用BeautifulSoup基于内容值提取标记内容所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1192667.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存