点击Scrapy-splashbutton,并提交一个

为了刮我想要的网页,我需要login。login表格通过AJAX几秒钟后加载页面的其余部分(我通过检查在该网站的直接链接forms)。

我试图login像这样:def start_requests(self):yield SplashRequest('example.com',self.parse)

def parse(self, response): formdata={'user': 'user', 'password':'password',} yield SplashFormRequest.from_response( response, formdata=formdata, clickdata={'name': 'commit'}, callback=self.parse1) def parse1(self,response): print(response.body.decode('utf8')) 

但parse1将打印加载login表单的页面,而不是用户login后的页面。

我不确定,但这可能是因为表单是使用Ajax加载的。 如果我说得对,这意味着我需要一个lua脚本来login。 我试过这个脚本 ,像这样修改def parse (保持和链接一样的lua_script):

 def parse(self, response): print('\n SplashRequest js \n') yield SplashRequest( url='example.com', callback=self.parse2, method='POST', endpoint='execute', args={ 'wait': 0.5, 'lua_source': self.lua_script, 'formdata': { 'user': 'user', 'password':'password', }, } ) 

但是我得到一个DEBUG: Crawled (422) ,这意味着它无法处理请求。 我该如何解决这个问题?