我正在尝试使用 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>
同一个类有第二个跨度。)我无法想象为什么该find_class
方法适用于某些元素,但不适用于其他元素。
我愿意接受任何获取这些span
标签中第一个内容的策略。但我真的很想深入了解这样做的正确方法。我想认为使用lxml
会比使用正则表达式更快、更易于维护,但我似乎从来没有很好的体验。