【问题标题】:Can I parse xpath using python, selenium and lxml?我可以使用 python、selenium 和 lxml 解析 xpath 吗?
【发布时间】:2012-12-07 13:46:03
【问题描述】:

所以我一直在尝试弄清楚我们如何使用 BeautifulSoup 并进行了快速搜索,发现 lxml 可以解析 html 页面的 xpath。如果我能做到这一点,我会很高兴,但教程不是那么直观。

我知道如何使用 Firebug 来获取 xpath,并且很好奇是否有人使用过 lxml,并且可以解释我如何使用它来解析特定的 xpath,并打印它们.. 说每行 5 个..或者是否有可能?!

Selenium 正在使用 Chrome 并正确加载页面,只是需要帮助继续前进。

谢谢!

【问题讨论】:

标签: python parsing selenium lxml xpath


【解决方案1】:

lxml 的 ElementTree 有一个 .xpath() 方法(注意 Python 发行版中 xml 包中的 ElementTree 有这个功能!)

例如

# see http://lxml.de/xpathxslt.html

from lxml import etree

# root = etree.parse('/tmp/stack-overflow-questions.xml')
root = etree.XML('''
        <answers>
            <answer author="dlam" question-id="13965403">AAA</answer>
        </answers>
''')

all_answers = root.xpath('.//answer')

for i, answer in enumerate(all_answers):
    who_answered = answer.attrib['author']
    question_id = answer.attrib['question-id']
    answer_text = answer.text
    print 'Answer #{0} by {1}: {2}'.format(i, who_answered, answer_text)

【讨论】:

    【解决方案2】:

    我更喜欢使用lxml。因为lxml的效率比selenium对于大元素的提取要高。您可以使用selenium 获取网页源,并使用lxml 的xpath 解析源,而不是selenium 中的原生find_elements_with_xpath

    【讨论】:

      猜你喜欢
      • 2010-12-07
      • 2012-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-29
      • 2012-11-19
      • 1970-01-01
      • 2012-07-12
      相关资源
      最近更新 更多