lxml的html模块,lxml.html

Running HTML doctests

One of the interesting modules in the lxml.html package deals with

doctests. It can be hard to compare two HTML pages for equality, as

whitespace differences aren't meaningful and the structural formatting

can differ. This is even more a problem in doctests, where output is

tested for equality and small differences in whitespace or the order

of attributes can let a test fail. And given the verbosity of

tag-based languages, it may take more than a quick look to find the

actual differences in the doctest output.

Luckily, lxml provides the lxml.doctestcompare module that

supports relaxed comparison of XML and HTML pages and provides a

readable diff in the output when a test fails. The HTML comparison is

most easily used by importing the usedoctest module in a doctest:

>>>import lxml.html.usedoctest

Now, if you have an HTML document and want to compare it to an expected result

document in a doctest, you can do the following:

>>>import lxml.html

>>>html = lxml.html.fromstring('''\

...

...

Hi !

...

...''')

>>>print lxml.html.tostring(html)

Hi !

>>>print lxml.html.tostring(html)

Hi !

>>>print lxml.html.tostring(html)

Hi !

In documentation, you would likely prefer the pretty printed HTML output, as

it is the most readable. However, the three documents are equivalent from the

point of view of an HTML tool, so the doctest will silently accept any of the

above. This allows you to concentrate on readability in your doctests, even

if the real output is a straight ugly HTML one-liner.

Note that there is also an lxml.usedoctest module which you can

import for XML comparisons. The HTML parser notably ignores

namespaces and some other XMLisms.

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值