通过 beautifulsoup 安全地删除标签中的孩子
Posted
技术标签:
【中文标题】通过 beautifulsoup 安全地删除标签中的孩子【英文标题】:Safely remove children in a tag by beautifulsoup 【发布时间】:2020-05-02 00:30:42 【问题描述】:假设现在我有一个标签div
通过 findAll 在汤中获得。
div = <div>text1<span>text2<\span>text3</div>
请注意,我想保留一些外部结构。例如,div.previous_element
将连接到汤中的其他标签。现在我解开了跨度,以便
div.contents=['text1','text2','text3']
我想要的是:
-
div.contents=['text1text2text3']
div.string 不是无。
与汤的连接未切断(div.previous_element 也可以工作)
【问题讨论】:
您能否提供所需输出的外观。 我希望 div=text1text2text3。另外,div.string='text1text2text3'(不是没有)。 【参考方案1】:试试这个。
from simplified_scrapy.simplified_doc import SimplifiedDoc
html='''<div>text1<span>text2<\span>text3</div>'''
doc = SimplifiedDoc(html)
div = doc.div
print (div)
print (div.text)
结果:
'tag': 'div', 'html': 'text1<span>text2<\\span>text3'
text1text2text3
可以获取SimplifiedDochere的例子
【讨论】:
以上是关于通过 beautifulsoup 安全地删除标签中的孩子的主要内容,如果未能解决你的问题,请参考以下文章
Python 3.8 - BeautifulSoup 4 - unwrap() 不会删除所有标签
解析目录中的 html 文件并使用 BeautifulSoup 删除特定标签
使用 Google Refine/OpenRefine & Jsoup/BeautifulSoup 解析和删除 HTML 标签