Требование: существует нумерация списка городов, управляемая AJAX, и я хочу сканировать внутренний HTML-код элемента <div id="city_list">...</div>
страница за страницей.
Проблема: код, который я пробовал, показан ниже иЯ получил ошибку тайм-аута после запуска.
def start_requests(self):
script = """
function main(splash, args)
assert(splash:go(args.url))
assert(splash:wait(0.5))
local index = 1
local citylist_list={}
while splash:evaljs("$('a.pg-next').length>0") do
splash:runjs("$('a.pg-next').click()")
splash:wait(1)
local citylist_html = splash:evaljs("$('#citylistlist').html()")
if citylist_html ~= nil then
citylist_list[index]=citylist_html
index=index+1
end
end
return citylist_list
end
"""
for url in self.start_urls:
yield SplashRequest(
url,
self.parse_result,
endpoint='execute',
args={'lua_source': script}
)