所以我一直试图想象如何使用BeautifulSoup并进行快速搜索,发现lxml可以解析html页面的xpath。我很乐意,如果我能做到这一点,但教程不是那么直观。
我知道如何使用Firebug来获取xpath并且很好奇,如果有人使用lxml并且可以解释我如何使用它来解析特定的xpath,并打印它们...比如每行说5 ..如果它甚至可能?!
Selenium正在使用Chrome并正确加载页面,只需要向前发送帮助。
谢谢!
答案 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
。