Scrapy登录失败

时间:2017-10-12 03:33:22

标签: python login scrapy

我正在尝试使用Scrapy登录网站。我已经成功地为其他网站做了这个,但这次我似乎遇到了麻烦,我不确定原因。

附件是运行此代码时我得到的响应的屏幕截图,以及我尝试登录的页面的检查。

import scrapy                                                                                                                     

class iauditorSpider(scrapy.Spider):                                            
    name = "iauditor"                                                           
    start_urls = ['https://app.safetyculture.io/login.html']                    

    def parse(self, response):                                                                                          
        return scrapy.FormRequest.from_response(                                
            response,                                                                                                   
            formid = 'login-form',                                                                                      
            formdata={'email': 'example@email.com',                             
                      'password': 'secret'},                                    
            callback=self.after_login                                                                                   
        )                                                                                                               

    def after_login(self, response):                                                                                    
        #Check login success before continuing                                  
        if(b'Those details don\'t appear to be correct.' in response.body):     
            self.logger.error("Login Failed.")                                  
            return

My ResponsePage Inspect

我之前使用几乎完全相同的代码成功登录其他网站,所以我很困惑为什么这次没有工作。

1 个答案:

答案 0 :(得分:1)

快速猜测,您必须发送标题和Cookie才能执行登录。

  1. 转到登录页面
  2. 打开Developer Tools并转到Network标签
  3. 点击Preserve LogsPersist以确保在重定向到其他网页时保留日志
  4. 现在登录该网站,注意点击登录按钮时发送的请求
  5. 现在右键点击它并点击Copy as cURL (bash)
  6. 现在转到https://curl.trillworks.com/并在此处粘贴您的cURL命令
  7. 就是这样,现在你已经有了完整的Python代码来执行登录。