Xpath表达式中的字符串格式

时间:2014-12-08 22:49:52

标签: python-2.7 xpath scrapy

我有如下功能。我需要找到具有特定搜索词的所有链接

def parse(search_term):
    response.xpath("//a[contains(.,search_term)]/@href").extract()

我相信无论search_term是什么,上面的代码都会给我所有锚链接 如果我用" Energy"替换search_term或任何字符串,它给出了完美的结果,例如

def parse(search_term):
    response.xpath("//a[contains(.,'Energy')]/@href").extract()

以上代码为我提供了具有“能源”功能的链接。作为文本。
这是字符串格式问题吗?

1 个答案:

答案 0 :(得分:0)

XPath表达式是常规Python字符串,因此您必须明确地“插入”它们:

def parse(search_term):
    response.xpath("//a[contains(.,'{}')]/@href".format(search_term)).extract()

请注意,这仅适用于没有任何'字符的字符串 - 如果有,则需要一些技巧来逃避它。