python lxml解析html,当使用lxml.html解析html时,等同于InnerHTML

我正在编写一个使用lxml.html解析网页的脚本。在我的时间里,我做了一些漂亮的工作,但是现在由于它的速度,我正在尝试使用lxml。

我想知道库中最明智的方法是做与Javascript的InnerHtml等价的事情,即检索或设置标记的完整内容。

A title

Some text

因此,InnerHtml是:

A title

Some text

我可以使用hacks(转换成string/regex等)来实现,但我假设有一种正确的方法可以使用由于不熟悉而丢失的库来实现。谢谢你的帮助。

编辑:感谢pobk如此快速有效地向我展示了这方面的方法。对任何人来说,这就是我的结局:from lxml import html

from cStringIO import StringIO

t = html.parse(StringIO(

"""

A title

Some text

Untagged text

Unclosed p tag

"""))

root = t.getroot()

body = root.body

print (element.text or '') + ''.join([html.tostring(child) for child in body.iterdescendants()])

请注意,lxml.html解析器将修复未关闭的标记,因此如果这是一个问题,请小心。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值