2010-11-22 46 views
2

在python中,如何在使用lxml.html时保留段落(即保留换行符)?Python在cssselect和text_content()后保留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

的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 
+0

谢谢,这是我落得这样做:第= self.doc.cssselect( '#DIV体P') paragraph_text = [paragraph.text_content()在段段] 含量=“\ n \ n'.join(paragraph_text) – Lionel 2010-11-23 09:58:17

+0

'body.xpath(“* // p”)'不适用于我,我将它改为'body.xpath(“./ p”)'。无论如何 – 2014-03-12 15:53:17