使用Scrapy Splash无法点击按钮

我正在尝试登录网站。我需要点击几个按钮才能实现,而我想使用Scrapy Splash,但我总是得到400错误。

from scrapy import Spider, Request from scrapy_splash import SplashRequest from datetime import datetime

class YouTube(Spider):

    name = 'youtube'
    start_urls = ['https://www.youtube.com']

    lua_click_button = """
        function main(splash)
            assert(splash:go(args.url))
            splash:wait(0.5)
            local element = splash:select('.style-scope.ytd-button-renderer.style-suggestive.size-small#button')
            local bounds = element:bounds()
            element:mouse_click{x=bounds.width/2, y=bounds.height/2}
            return splash:html()
        end
    """

    def start_requests(self):
        for url in self.start_urls:
            yield Request(
                url=url,
                callback=self.parse,
            )

    def parse(self, response):
        html_file = (
            f'homepage_{datetime.now()}.html'
        )
        with open(html_file, 'w') as f:
            f.write(response.body.decode('utf-8'))

        yield SplashRequest(
            url=response.url,
            callback=self.after_first_click,
            endpoint='execute',
            args={'lua_source': self.lua_click_button}
        )

    def after_first_click(self, response):
        html_file = (
            f'after_first_click{datetime.now()}.html'
        )
        with open(html_file, 'w') as f:
            f.write(response.body.decode('utf-8'))

这是从scrapy运行指令所获得的错误

警告:对Splash的请求失败:{'error': 400, 'type': 'ScriptError', 'description': 'Error happened while executing Lua script', 'info': {'source': '[string "..."]', 'line_number': 3, 'error': "attempt to index global 'args' (a nil value)", 'type': 'LUA_ERROR', 'message': 'Lua error: [string "..."]:3: attempt to index global \'args\' (a nil value)'}}
点赞