所以我一直在试图弄清楚我们如何使用 BeautifulSoup 并进行了快速搜索,发现 lxml 可以解析 html 页面的 xpath。如果我能做到这一点,我会很高兴,但教程不是那么直观。
我知道如何使用 Firebug 来获取 xpath,并且很好奇是否有人使用过 lxml,并且可以解释我如何使用它来解析特定的 xpath,并打印它们.. 说每行 5 个..或者是否有可能?!
Selenium 正在使用 Chrome 并正确加载页面,只需要帮助继续前进。
谢谢!
lxml
的 ElementTree 有一个 .xpath() 方法(注意xml
Python 分发包中的 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)
我更喜欢使用lxml
. 因为效率lxml
比selenium
大元素提取要高。您可以selenium
用来获取网页的源代码并使用lxml
's xpath 而不是本机find_elements_with_xpath
in解析源代码selenium
。