Scrapy报错ValueError: XPath无效表达式,请求排查脚本问题
问题解决:Scrapy XPath无效表达式错误
错误根源
报错来自这行代码:
next = response.xpath('//a[@title="Page suivante"]/')
XPath表达式末尾多了一个/,XPath语法不允许以斜杠结尾(根节点/除外),这直接触发了Invalid expression错误。
修正方案
根据你的需求选择对应的修正方式:
- 若要获取下一页的链接(即a标签的href属性),修改XPath为:
next_link = response.xpath('//a[@title="Page suivante"]/@href').get() - 若只是要选中这个a节点本身,直接去掉末尾的斜杠:
next_node = response.xpath('//a[@title="Page suivante"]')
完整修正后的parse方法示例
def parse(self, response): yield { 'user_agent': str(response.request.headers['User-Agent']), 'links' : response.xpath('//a[@class="sc-996f251d-0 leAMGT"]/@href').getall() } # 获取并打印下一页链接 next_link = response.xpath('//a[@title="Page suivante"]/@href').get() print(next_link) # 如需自动跟进下一页,可添加以下代码 if next_link: yield response.follow(next_link, self.parse)
内容的提问来源于stack exchange,提问作者kévin Goncalves
相关产品推荐
相关产品推荐

