我可以使用python,selenium和lxml解析xpath吗?

时间:2012-12-20 04:37:43

标签: python parsing selenium lxml xpath

所以我一直试图想象如何使用BeautifulSoup并进行快速搜索,发现lxml可以解析html页面的xpath。我很乐意,如果我能做到这一点,但教程不是那么直观。

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

Selenium正在使用Chrome并正确加载页面,只需要向前发送帮助。

谢谢!

2 个答案:

答案 0 :(得分:1)

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

e.g。

# 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)

答案 1 :(得分:0)

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