lxml.html.clean.Cleaner之page_structure参数的作用

1. 问题描述

在使用lxml.html.clean.Cleaner时,通常看到的代码片段都会将cleaner.page_structure设置为False,为什么呢?

    cleaner = Cleaner()
    cleaner.javascript = True
    cleaner.style = True
    cleaner.page_structure = False

2. 参数含义

根据lxml的官方文档

page_structure的解释如下:

Structural parts of a page: <head>, <html>, <title>.

也就是说,如果page_structure = True(注意:这是默认值),cleaner会去掉HTML中的html、head、title标签。这三个标签就是所谓的页面结构,即page_structure

下面通过代码示例来理解这个参数的作用。

from lxml.html.clean import Cleaner

cleaner = Cleaner()
cleaner.javascript = True
cleaner.style = True
# 默认情况下,page_structure=True
cleaner.clean_html("<html><head><title>ABC</title><body><h1>hi</h1></body></html>")

输出结果是
<div>ABC<body><h1>hi</h1></body></div>

head和title都被去掉了,html被替换为了div。

下面看看设置为False的结果。

cleaner.page_structure=False
cleaner.clean_html("<html><head><title>ABC</title><body><h1>hi</h1></body></html>")
# 输出结果是
'<html><head><title>ABC</title></head><body><h1>hi</h1></body></html>'

3. 结论

一定要记得把cleaner.page_structure设置为False!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值