Javascript 刮花不返回结果

Javascript 刮花不返回结果,javascript,python,scrapy,scrapy-splash,Javascript,Python,Scrapy,Scrapy Splash,我正在学习scrapy(使用splash)并构建一个蜘蛛来从支持js的页面中获取结果。我的爬行器工作正常,并返回js页面的结果。但是,它不会从这个链接返回价格 上述xpath在浏览器中确实返回结果,但在通过scrapy调用时不返回结果。这是我的蜘蛛电话 yield scrapy.Request(url, callback=self.parse_page, dont_filter=True, meta={'splash': {'args': {'wait': 5,},'endpoint': 're

我正在学习scrapy(使用splash)并构建一个蜘蛛来从支持js的页面中获取结果。我的爬行器工作正常,并返回js页面的结果。但是,它不会从这个链接返回价格

上述xpath在浏览器中确实返回结果,但在通过scrapy调用时不返回结果。这是我的蜘蛛电话

yield scrapy.Request(url, callback=self.parse_page, dont_filter=True, meta={'splash': {'args': {'wait': 5,},'endpoint': 'render.html',}})
你能帮我弄清楚为什么网站上的价格没有退回吗


谢谢

将其用于xpath-
/*[包含(concat(“,@class,”),concat(“,”,“\u product-price“,”)]///span/text()
或简单地
/*[包含(concat(“,@class,”,“\u product-price”)]///span/text()


Xpath@class=谓词不适用于多个类(用空格分隔的类),就像您在那里看到的那个类一样。要获取元素,您应该使用contains()

问题在于,在Splash呈现的HTML输出中根本不存在价格(最好是将URL放在web浏览器
8050
端口的Splash控制台中,然后查看其呈现的输出)。当页面未正确呈现时,从Splash开始。您将发现,在您的情况下,解决方案是通过
--禁用Docker的私有模式
启动选项,或者在LUA脚本中设置
Splash.private\u mode\u enabled=false
,来启动Splash。禁用私有模式后,页面将正确呈现。

要检查是否是由于您的代码或配置造成的,您可以从splash获得页面结果的屏幕截图并进行检查,或者只要检查文档树(如果有价格)。哦,只要看一下您的代码,似乎您的xpath是错误的。我也尝试过使用您指定的xpath,但没有成功。是否还有其他可能出错的地方//*[包含(concat(“,@class,”)、concat(“,”产品价格“,”)]///span/text()
yield scrapy.Request(url, callback=self.parse_page, dont_filter=True, meta={'splash': {'args': {'wait': 5,},'endpoint': 'render.html',}})