我试图把一个“延迟”使用lxml.html属性转换脚本标签,但我得到的错误lxml.html设置错误“类型错误:参数必须是字节或Unicode,得到了‘NoneType’”
类型错误:参数必须是字节或Unicode,得到了 'NoneType'
或
类型错误:组()恰恰2位置参数(给定1)
如果我使用
script.set('defer')
根据http://lxml.de/lxmlhtml.html
.SET(键,值=无): 设置HTML属性。如果没有给定值,或者如果值是None,它会建立像
<form novalidate></form>
或
一个布尔属性<div custom-attribute></div>.
我的代码是
import lxml.html
htmldoc = lxml.html.parse(file)
headElement = htmldoc.find("head")
listOfScripts = headElement.xpath("script")
if len(listOfScripts) > 0:
for script in listOfScripts:
script.set('defer', value=None)
嗯,可能是它在LXML错误。文档说'None'(或者如果省略)表示设置为布尔属性。但恕我直言,你可以将其设置为“推迟”字符串值,XHTML也应该吃它 –