Python 如何获取具有子元素条件的元素

Python 如何获取具有子元素条件的元素,python,xml,selenium,selenium-webdriver,xpath,Python,Xml,Selenium,Selenium Webdriver,Xpath,我正在使用Python和Selenium进行一个爬行项目。我对如何从XML中获取具有子元素条件的元素感到困惑。例如,我们有一个如下所示的XML: <html> <body> <a href='http://foo.com'> <span>foo</span> </a> </body> </html> 我想获得一个条件为spa

我正在使用Python和Selenium进行一个爬行项目。我对如何从XML中获取具有子元素条件的元素感到困惑。例如,我们有一个如下所示的XML:

<html>
    <body>
        <a href='http://foo.com'>
            <span>foo</span>
        </a>
    </body>
</html>


我想获得一个条件为
span
标记,该标记包含“foo”。

您可以使用
XPath
实现以下目的:

//a[span[.="foo"]]
这意味着
标记有一个直接子项,其文本为
“foo”

如果span是死者,您可以将
/
添加到
XPath
中的
span

//a[//span[.="foo"]]

beautifulSoup应该为您提供所需的内容

from bs4 import BeautifulSoup
soup = BeautifulSoup(contents, "html.parser")
print(soup.find("span"))


还有更多的功能。你可以阅读更多

这不是OP想要的。他要求
a
元素包含
span
和文本
foo