Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用python、selenium和lxml解析xpath吗?_Python_Parsing_Selenium_Lxml_Xpath - Fatal编程技术网

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

我可以使用python、selenium和lxml解析xpath吗?,python,parsing,selenium,lxml,xpath,Python,Parsing,Selenium,Lxml,Xpath,因此,我一直在尝试了解如何使用BeautifulSoup,并进行了快速搜索,发现lxml可以解析html页面的xpath。如果我能做到这一点,我会很高兴,但教程并不是那么直观 我知道如何使用Firebug获取xpath,我很好奇是否有人使用过lxml,我可以解释如何使用它解析特定的xpath并打印它们。。说每行5个…或者如果可能的话 Selenium正在使用Chrome并正确加载页面,只需继续帮助即可 谢谢 lxml的ElementTree有一个.xpath()方法(请注意,Python发行版中

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

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

Selenium正在使用Chrome并正确加载页面,只需继续帮助即可


谢谢

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

e、 g

#参见http://lxml.de/xpathxslt.html
从lxml导入etree
#root=etree.parse('/tmp/stack overflow questions.xml')
root=etree.XML(“”)
AAA
''')
all_answers=root.xpath('.//answer')
对于i,用枚举法回答(所有答案):
who_response=answer.attrib['author']
问题id=答案.attrib['question-id']
answer\u text=answer.text
用{1}:{2}打印“答案{0}”。格式(i,回答者,答案文本)

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

e、 g

#参见http://lxml.de/xpathxslt.html
从lxml导入etree
#root=etree.parse('/tmp/stack overflow questions.xml')
root=etree.XML(“”)
AAA
''')
all_answers=root.xpath('.//answer')
对于i,用枚举法回答(所有答案):
who_response=answer.attrib['author']
问题id=答案.attrib['question-id']
answer\u text=answer.text
用{1}:{2}打印“答案{0}”。格式(i,回答者,答案文本)

我更喜欢使用
lxml
。因为
lxml
对于大元素提取的效率高于
selenium
。您可以使用
selenium
获取网页源代码,并使用
lxml
的xpath解析源代码,而不是在
selenium
中使用xpath查找元素。因为
lxml
对于大元素提取的效率高于
selenium
。您可以使用
selenium
获取网页的源代码,并使用
lxml
的xpath解析源代码,而不是在
selenium
中使用xpath查找元素?维基百科说这是一辆轿车:)@Himanshu Sorry-bs4=beautifulsoup4ok。要在python的xml文档上使用xpath,请参见元素树。您可能无法立即在web上解析所有html文档,因为它们可能不是所有有效的xml文档。看看什么是bs4?维基百科说这是一辆轿车:)@Himanshu Sorry-bs4=beautifulsoup4ok。要在python的xml文档上使用xpath,请参见元素树。您可能无法立即在web上解析所有html文档,因为它们可能不是所有有效的xml文档。看见
# 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)