首页 > 解决方案 > 如何使用 CSS 选择器转换或映射 xpath?

问题描述

我有代码可以使用 xpath 执行或查找标签以查找文件

 xPathToFieldBasedOnLabe="//div[text()='" + keyword + "']//parent::div//parent::div[contains(@class,'Button')]"

上面我想转换成CSS扇区,我做了如下映射,好像不行..

xPathToFieldBasedOnLabel = "div:contains(" + keyword + ").parent:div.parent:div.Button"

在 xpath 映射到 css 选择器上的任何输入或更正?

标签: pythonxpathcss-selectors

解决方案


首先,您可以ancestor在 XPath 表达式中使用:

//div[text()='" + keyword + "']/ancestor::div[contains(@class,'Button')]

您无法将元素的内容与 CSS 选择器匹配。它不存在。

但是,有一种解决方法scrapy可以将 CSS 转换为 XPath(感谢cssselect库)。因此,对于您的具体情况,如果您使用的是scrapy,您可以编写:

keyword = foobar
response.css(div.Button div:contains("'+keyword+'")).get()

但它可能过于笼统,需要加强。


推荐阅读