我正在使用Scrapy抓取网站,并希望废弃包含'的表格中的项目。或"
xpath = '//table/tbody/tr/td[contains(.,\"\'") or contains (.,\"\"\")]/text()'
然而,这导致:
ValueError: XPath error: Invalid expression in XPATH
还有其他办法吗? (我已尝试使用unicodes用于'和#34;但它不起作用。我也试过变量无效)
由于
答案 0 :(得分:2)
当您搜索'
使用"
作为XPath字符串文字分隔符以避免冲突时,以及搜索"
时的另一种方式:
//table/tbody/tr/td[contains(.,"'") or contains (.,'"')]/text()
现在,你的python也使用了一种字符串分隔符,例如,使用"
,你需要避免与XPath中的"
冲突(上面的XPath)。因此,您需要使用"
:
\"
xpath = "//table/tbody/tr/td[contains(.,\"'\") or contains (.,'\"')]/text()"
或者,如果这是Scrapy,您可以使用XPath variable来指定单个&没有转义的双引号:
query = "//table/tbody/tr/td[contains(.,$single_quote) or contains (.,$double_quote)]/text()"
response.xpath(query, single_quote="'", double_quote='"').extract()