在scrapy的xPath选择器中使用python变量

Nav*_*777 3 python xpath scrapy

我想选择它们text包含的元素bar。我有一个名为foo它的值是的 python 变量"bar",我想像这样使用它:

foo = "bar"
response.xpath('//*[contains(text(), foo)]')
Run Code Online (Sandbox Code Playgroud)

但它返回所有元素!问题是什么?

GHa*_*jba 6

你试过了吗:

foo = "bar"
response.xpath('//*[contains(text(), "'+foo+'")]')
Run Code Online (Sandbox Code Playgroud)

?

这是 Mathiou 的答案和正确的 XPath 表达式的组合contains。不要忘记,即使在 XPath 表达式中,您也在处理一个字符串,并且您必须告诉它您有一个字符串。