Я использую scrapy и spla sh. Моя проблема в том, что Scrapy вообще не ждет, что бы ни сказал мой LUA скрипт. Вот мой код паука:
class StiSpider(scrapy.Spider):
name = 'sti'
allowed_domains = ['www.stihlshop.co.nz']
script = '''
function main(splash, args)
assert(splash:go(args.url))
assert(splash:wait(10))
tabs = assert(splash:select_all("a[data-bind=\"click: $parent.viewStore, attr: {'data-store-name': store_name, 'data-store-location': location}\"]"))
tabs[3]:mouse_click()
assert(splash:wait(2))
splash:set_viewport_full()
return splash:html()
end
'''
def start_requests(self):
yield SplashRequest(url="https://www.stihlshop.co.nz/default/stihl_storelocator/shops/",
callback = self.parse, endpoint = "execute", args={'lua_source': self.script, 'wait':3})
def parse(self, response):
print(response.body)
Я попытался ввести 'wait' в качестве аргумента SplashRequest, как предлагалось в сообщении Stackoverflow, и я также убедился, что мой settings.py настроен как на страницу github - как было предложено на другой странице Stackoverflow.
Я получаю следующую ошибку:
WARNING: Bad request to Splash: {'error': 400, 'type': 'ScriptError', 'description': 'Error happened while executing Lua script', 'info': {'source': '[string "..."]', 'line_number': 6, 'error': "')' expected near 'click'", 'type': 'LUA_INIT_ERROR', 'message': '[string "..."]:6: \')\' expected near \'click\''}}
И я ПОЛОЖИТЕЛЬНО, это связано с временем ожидания, поскольку он отлично работает в SPLA SH, но не работает в Scrapy, и когда я ввожу spla sh: wait (1900000), я почти мгновенно получаю сообщение об ошибке, что означает, что он вообще не ждал.
Любые идеи был бы очень признателен !!