python - 通过 beautifulsoup 安全删除标签中的子项

标签 python beautifulsoup

假设现在我在 soup 中有一个由 findAll 获得的标签 div

div = <div>text1<span>text2<\span>text3</div>

请注意,我想保留一些外部结构。例如,div.previous_element 将连接到 soup 中的其他标签。现在我展开了跨度,这样

div.contents=['text1','text2','text3']

我想要的是:

  1. div.contents=['text1text2text3']
  2. div.string 不是 none。
  3. 与 soup 的连接未切断(div.previous_element 也正常工作)

最佳答案

试试这个。

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

您可以获取 SimplifiedDoc here 的示例

关于python - 通过 beautifulsoup 安全删除标签中的子项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59748046/

相关文章:

python - Python2 和 Python3 之间的 BeautifulSoup HTMLparsingError

python - 提取括号内字符串的内容

python - 使用python3.6类型错误: an integer is required

删除文本文件中特定行的Python程序

python - BeautifulSoup 在父 DIV 的子 DIV 中添加新标签

python - 2个列表之间的差异

python - 在 BeautifulSoup 中处理 "next_sibling"时遇到问题

python - 使用 Beautiful Soup 进行 HTML 抓取 - 不需要的换行符

python - 从列表中仅替换数据框中的几个标题

python - 使用 BeautifulSoup 或 golang colly 解析 HTML 时遇到问题