gpt4 book ai didi

python - lxml: cssselect(): AttributeError: 'lxml.etree._Element' 对象没有属性 'cssselect'

转载 作者:太空宇宙 更新时间:2023-11-04 03:27:56 26 4
gpt4 key购买 nike

谁能解释为什么第一次调用 root.cssselect() 有效,而第二次失败?

from lxml.html import fromstring
from lxml import etree

html='<html><a href="http://example.com">example</a></html'
root = fromstring(html)
print 'via fromstring', repr(root) # via fromstring <Element html at 0x...>
print root.cssselect("a")

root2 = etree.HTML(html)
print 'via etree.HTML()', repr(root2) # via etree.HTML() <Element html at 0x...>
root2.cssselect("a") # --> Exception

我得到:

Traceback (most recent call last):
File "/home/foo_eins_d/src/foo.py", line 11, in <module>
root2.cssselect("a")
AttributeError: 'lxml.etree._Element' object has no attribute 'cssselect'

版本:lxml==3.4.4

最佳答案

区别在于元素的类型。示例 -

In [12]: root = etree.HTML(html)

In [13]: root = fromstring(html)

In [14]: root2 = etree.HTML(html)

In [15]: type(root)
Out[15]: lxml.html.HtmlElement

In [16]: type(root2)
Out[16]: lxml.etree._Element

lxml.html.HTMLElement有方法 cssselect() 。此外,HTMLElementetree._Element 的子类。

但是lxml.etree._Element没有那个方法。

如果你想解析html,你应该使用lxml.html

关于python - lxml: cssselect(): AttributeError: 'lxml.etree._Element' 对象没有属性 'cssselect',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32264533/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com