Использование spla sh с scrapy - Scrapy не ждет, даже если это явно закодировано в Lua - PullRequest
0 голосов
/ 26 мая 2020

Я использую 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), я почти мгновенно получаю сообщение об ошибке, что означает, что он вообще не ждал.

Любые идеи был бы очень признателен !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...