Python在cssselect和text_content()之后在lxml.html中保留换行符

时间:2010-11-22 06:00:18

标签: python newline html-parsing lxml

在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 个答案:

答案 0 :(得分: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