Scrapy-Splash如何在响应中添加返回变量

我想运行一个执行Lua操作并将结果返回给我的Scrapy机器人的Splash脚本。但是,我只能接收HTML正文,而无法接收返回语句中的变量。

splash:go(...)
--lua/splash stuff
test = 500
return {
-- 另一个SO线程指出这些必须以JSON格式表示?无论如何都无法工作
test = test
}

我尝试使用JSON端点,但结果仍然相同。Scrapy-Splash文档也没有真正解释如何获取这些变量。

因此,我的问题是-如何通过scrapy_plash.SplashRequest调用从我的lua脚本中接收任意返回变量?

这是我的当前Splash请求:

yield SplashRequest(url,self.parse,
    args = {'lua_source': QuotesSpider.SPLASH_SCRIPT,'wait': 0.5})
点赞
用户6825464
用户6825464

默认情况下,splashRequest 的设置是 render.html,它只返回 HTML 而不执行 Lua 脚本。添加 execute 端点可以正确运行 Lua 脚本,并因此返回所需的变量。

yield SplashRequest(url, self.parse, endpoint='execute',
    args={'lua_source': QuotesSpider.SPLASH_SCRIPT, 'wait': 0.5})
2020-09-27 10:34:23