Python在lxml.html中保持cssselect和text_content()后的换行符
在Python中,如何在使用lxml.html时保留段落(也就是保持换行)?
比如,下面的代码会去掉<p></p>标签,并把行连接在一起,这正是我不想要的:
body = doc.cssselect("div.body")[0]
content = body.text_content()
这是我尝试过但没有成功的方法:
- lxml.html.clean.clean_html:
- 不会保留换行。
- content.replace(" "*3,"\n\n"):
- 不太稳定,因为合并后的文本空格数量不一致。
1 个回答
2
lxml的text_content功能是按照文档说明正常工作的,它会去掉HTML标签,只留下文本内容。
你可以通过在输出内容之前添加自己的换行符来解决这个问题。
body = doc.cssselect("div.body")[0]
for para in body.xpath("*//p"):
para.text = "\n%s\n" % para.text
content = body.text_content()
print content