gpt4 book ai didi

python - 为什么 lxml 找不到这个类?

转载 作者:行者123 更新时间:2023-11-28 18:11:04 25 4
gpt4 key购买 nike

我正在尝试使用 Python 从页面中抓取一些文本。应该很容易,但是lxml似乎总是让我感到惊讶。这是我尝试过的:

>>> import lxml.html
>>> import urllib

>>> response = urllib.urlopen('http://www.codecademy.com/username')
>>> tree = lxml.html.parse(response)
>>> root = tree.getroot()
>>> root.find_class('stat-count')
[]

我很困惑。以下内容在 html 中:<span class="stat-count">27</span> (同一个类(class)有第二个跨度。)我无法想象为什么 find_class方法以这种方式适用于某些元素,但不适用于其他元素。

我愿意接受任何获取第一个 span 内容的策略标签。但我真的很想深入了解执行此操作的正确方法。我想认为使用 lxml会比使用正则表达式更快且更易于维护,但我似乎从未有过良好的体验。

最佳答案

如果 root = tree.getroot(),它应该可以工作。

import lxml.html
import urllib

response = urllib.urlopen('http://www.codecademy.com/username')
tree = lxml.html.parse(response)
# tree.write('/tmp/test.html')
root = tree.getroot()
print(root.find_class('stat-count'))

产量

[<Element span at 0xa3146bc>, <Element span at 0xa3146ec>]

关于python - 为什么 lxml 找不到这个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18626245/

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