将XPath转换为Beautiful Soup

时间:2015-06-04 06:46:21

标签: python beautifulsoup

我有一个带标签的页面

<img alt="1ee7aca0cf5b0132dd7a005056a9545d" src="http://assets.amuniversal.com/1ee7aca0cf5b0132dd7a005056a9545d">

我知道XPath -

//*[@id="content"]/div[2]/p/a/img

如何使用BeautifulSoup访问该标记并获取该标记的src?

2 个答案:

答案 0 :(得分:3)

您可以尝试将xpath表达式转换为CSS选择器表达式,然后使用接受CSS选择器表达式参数的BeautifulSoup select()方法:

soup = BeautifulSoup("your html source")
result = soup.select("#content > div:nth-of-type(2) > p > a > img")

答案 1 :(得分:1)

由于您已经熟悉xpath,为什么不使用lxml解析器,您可以直接使用xpath找到元素,这里有一个函数:

import lxml
def find_by_xpath(element_source,xpath_expression):
    root = html.fromstring(element_source)
    return root.xpath(xpath_expression)