我正在使用Scrapy-splash
,但是这个问题是关于Lua
脚本的。我需要等到一个元素可见。问题在于该元素只能使用其文本进行导航。
等效的XPATH为://*[@id="tab-nav-main"]//span[text()="desc"]')
我尝试过:
#tab-nav-main span:contains(desc)
适用于Chrome浏览器,但不适用于lua
你会做什么?
function main(splash, args)
splash:set_user_agent(args.ua)
assert(splash:go(splash.args.url))
local i=0
local maxwait=5
while not splash:select("#tab-nav-main span:contains(description)") do
if i==maxwait then
break --times out at maxwait secs
end
i=i+1
splash:wait(1) --each loop has duration 1sec
end
return {
html = splash:html(),
}
end
错误
2019-03-14 17:07:05 [scrapy_splash.middleware] WARNING: Bad request to Splash: {'description': 'Error happened while executing Lua script', 'error': 400, 'info': {'splash_method': 'select', 'line_number': 9, 'error': 'cannot select the specified element {\'js_error\': \'Error: SyntaxError: DOM Exception 12\', \'js_error_type\': \'SyntaxError\', \'js_error_message\': \'SyntaxError: DOM Exception 12\', \'type\': \'JS_ERROR\', \'message\': "JS error: \'Error: SyntaxError: DOM Exception 12\'"}', 'source': '[string "..."]', 'message': '[string "..."]:9: cannot select the specified element {\'js_error\': \'Error: SyntaxError: DOM Exception 12\', \'js_error_type\': \'SyntaxError\', \'js_error_message\': \'SyntaxError: DOM Exception 12\', \'type\': \'JS_ERROR\', \'message\': "JS error: \'Error: SyntaxError: DOM Exception 12\'"}', 'type': 'SPLASH_LUA_ERROR'}, 'type': 'ScriptError'}