1

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

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

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

谢谢!

4

2 回答 2

1

lxml的 ElementTree 有一个 .xpath() 方法(注意xmlPython 分发包中的 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)
于 2012-12-20T07:29:38.243 回答
0

我更喜欢使用lxml. 因为效率lxmlselenium大元素提取要高。您可以selenium用来获取网页的源代码并使用lxml's xpath 而不是本机find_elements_with_xpathin解析源代码selenium

于 2016-10-27T05:26:09.133 回答