如何使用python删除html中标签之间的pilcrow标志(¶)

时间:2016-12-14 12:35:25

标签: python beautifulsoup

我正在尝试通过删除必需的属性来删除html页面。我能够删除包含空内容但仍然被删除了pilcrow标记的标记

input: `<h2>Tutorial material<a>¶</a></h2>

预期产出:

 <h2>Tutorial material<a></a></h2>

代码:

elements = soup.find_all(True)
 for el in elements:
    if len(el.text) == 0:
        el.extract()
print soup

此代码删除了内容为空的标签,但我无法删除pilcrow标志

`

3 个答案:

答案 0 :(得分:1)

尝试添加

#!/usr/bin/env python
# -*- coding: utf-8 -*-

到你的python文件的开头,并在需要时将pilcrow标志引用为u'¶'

答案 1 :(得分:0)

您提供的代码会删除空节点,您只需将其修改为包含@Robin注释。

一种解决方案是检查节点文本是否为空或等于¶,并将其删除:

elements = soup.find_all(True)
 for el in elements:
    if len(el.text) == 0 or el.text == u'¶':
        el.extract()
print soup

答案 2 :(得分:0)

检查文本是否(仅)是pilcrow:

elements = soup.find_all(True)
for el in elements:
    if len(el.text) == 0 or el.text == u'¶':
        el.extract()
print(soup)