top*_*ess 3 html python string
我有一个html文件,我想用空格替换空段落.
mystring = "This <p></p><p>is a test</p><p></p><p></p>"
result = mystring.sub("<p></p>" , " ")
Run Code Online (Sandbox Code Playgroud)
这不起作用.
Eli*_*sky 10
请不要尝试使用正则表达式解析HTML.使用正确的解析模块,htmlparser或者BeautifulSoup实现此目的."受苦"现在是一个短暂的学习曲线并受益:
你不会后悔的!保证利润!
我认为用一个真正的解析器给出一个如何做到这一点的例子总是很好的,并且只是重复Eli Bendersky在他的答案中给出的声音建议.
这是一个如何<p>使用lxml删除空元素的示例.lxml HTMLParser非常适合处理HTML.
from lxml import etree
from StringIO import StringIO
input = '''This <p> </p><p>is a test</p><p></p><p><b>Bye.</b></p>'''
parser = etree.HTMLParser()
tree = etree.parse(StringIO(input), parser)
for p in tree.xpath("//p"):
if len(p):
continue
t = p.text
if not (t and t.strip()):
p.getparent().remove(p)
print etree.tostring(tree.getroot(), pretty_print=True)
Run Code Online (Sandbox Code Playgroud)
...产生输出:
<html>
<body>
<p>This </p>
<p>is a test</p>
<p>
<b>Bye.</b>
</p>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
请注意,我在回复此问题时误解了这个问题,而我只删除了空<p>元素,而不是替换它们 .使用lxml,我不确定一个简单的方法,所以我创建了另一个问题:
| 归档时间: |
|
| 查看次数: |
2240 次 |
| 最近记录: |