我正在使用Scrapy Splash刮刮具有这样的元素的页面:
第1页,共349个| 1个 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 下一个 ›
我想用文本“下一步”“单击”锚,并执行JavaScript以获取下一页。
这是我的刮板外观:
ansible_user: osadmin
ansible_password: password1
ansible_become_password: password2
[ some other values ]
Lua脚本不正确(我从一个不相关的示例复制了它)。我的问题是如何将所需的参数传递给Lua脚本,以便运行javascript?
答案 0 :(得分:0)
您可以通过将值添加到SplashRequest的args
中来将其他参数(docs)传递给Lua脚本:
javascript = "doSubmit('frmRow',1,0)"
yield SplashRequest(new_url, self.parse,
cookies={'store_language':'en'},
endpoint='execute',
args={'lua_source': self.script, 'javascript': javascript})
在Lua脚本中,您可以在args
中获取值并使用runjs
执行Javascript:
function main(splash, args)
-- ...
-- Get the argument here:
local javascript = args.javascript
-- Run the JS:
assert(splash:runjs(javascript))
return {
html = splash:html()
}
end