Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从HTML标记中删除某些属性_Python_Html Parsing_Beautifulsoup_Lxml - Fatal编程技术网

Python 从HTML标记中删除某些属性

Python 从HTML标记中删除某些属性,python,html-parsing,beautifulsoup,lxml,Python,Html Parsing,Beautifulsoup,Lxml,如何从HTML代码中删除某些属性,如id、样式、类等 我原以为可以使用,但事实证明,我只能使用Clean(style=True).Clean\u html(code)删除样式属性。我不希望在这个任务中使用正则表达式(属性可能会改变) 我想要的是: from lxml.html.clean import Cleaner code = '<tr id="ctl00_Content_AdManagementPreview_DetailView_divNova" class="Extended"

如何从HTML代码中删除某些属性,如id、样式、类等

我原以为可以使用,但事实证明,我只能使用
Clean(style=True).Clean\u html(code)
删除样式属性。我不希望在这个任务中使用正则表达式(属性可能会改变)

我想要的是:

from lxml.html.clean import Cleaner

code = '<tr id="ctl00_Content_AdManagementPreview_DetailView_divNova" class="Extended" style="display: none;">'

cleaner = Cleaner(style=True, id=True, class=True)
cleaned = cleaner.clean_html(code)

print cleaned
'<tr>'
来自lxml.html.clean导入清理器
代码=“”
cleaner=cleaner(style=True,id=True,class=True)
cleaned=cleaner.clean_html(代码)
打印清洁
''

提前谢谢

cleaner.cleaner.\uuuu call\uuu
只有一个
safe\u attrs\u
参数。当设置为
True
时,仅保留
clean.defs.safe\u attrs
中的属性。通过更改
clean.defs.safe\u attrs
,可以删除任何或所有属性。完成后一定要把它换回来

import lxml.html.clean as clean

code = '<tr id="ctl00_Content_AdManagementPreview_DetailView_divNova" class="Extended" style="display: none;">'

safe_attrs = clean.defs.safe_attrs
cleaner = clean.Cleaner(safe_attrs_only=True, safe_attrs=frozenset())
cleansed = cleaner.clean_html(code)

print(cleansed)
导入lxml.html.clean为clean
代码=“”
安全属性=clean.defs.safe\u属性
cleaner=clean.cleaner(safe\u attrs\u only=True,safe\u attrs=frozenset())
cleaned=cleaner.clean_html(代码)
打印(已清洁)
屈服

<tr></tr>


谢谢,这正是我需要的!我很难在lxml-3.2.3中使用此技术。碰巧知道他们是否更改了某些内容?为了使其在v3.2.3中正常工作,我必须在
cleaner=clean.clean(…)
之后添加
cleaner.safe\u attrs=clean.defs.safe\u attrs
。这是个好消息。事实证明,
clean.Cleaner
现在(至少从3.2.0版开始)有一个per-instance
safe\u attrs
属性,因此不再需要旧的模块操作变通方法。更好的是,可以在实例化时设置
安全属性。这是个好消息。谢谢