我有如下功能。我需要找到具有特定搜索词的所有链接
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()
以上代码为我提供了具有“能源”功能的链接。作为文本。
这是字符串格式问题吗?
答案 0 :(得分:0)
XPath表达式是常规Python字符串,因此您必须明确地“插入”它们:
def parse(search_term):
response.xpath("//a[contains(.,'{}')]/@href".format(search_term)).extract()
请注意,这仅适用于没有任何'
字符的字符串 - 如果有,则需要一些技巧来逃避它。