账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    scrapy发送验证码url下载后模拟登录出现405错误
    54
    0

    scrapy模拟登录下载的验证码登录不能识别出现405错误

    题目来源及自己的思路

    def start_requests(self):

        yield scrapy.Request(
            url= "https://www.iqianjin.com/user/login?backUrl=https://www.iqianjin.com/?utmSource=190",
            headers=self.headers,
            meta={'cookieJar': 1},
            callback=self.Get_Code
        )
    
    def Get_Code(self, response):
        Time = int(time.time() * 1000)
        code_url = "https://www.iqianjin.com/user/getCode?v=%s" % Time
        yield scrapy.Request(
            url=code_url,
            headers=self.hd,
            callback=self.post_login,
            meta={'cookieJar': response.meta['cookieJar']},
            dont_filter=True
        )
    
    def post_login(self, response):
        f = open("code.png", "wb")
        f.write(response.body)
        f.close()
        code = raw_input("请输入你的验证码:")
        self.data["code"] = code
        yield scrapy.http.FormRequest(
            url="https://www.iqianjin.com/user/login?backUrl=//www.iqianjin.com/userCenter/index",
            formdata=self.data,
            headers=self.headers,
            meta={ 'cookieJar': response.meta['cookieJar'] },
            callback=self.parse,
            dont_filter=True
    
    

    这是错误
    2018-07-10 16:55:32 [scrapy.downloadermiddlewares.cookies] DEBUG: Sending cookies to: <POST https://www.iqianjin.com/user...;
    Cookie: svc=4B58BEC402A895695428CBFE2A0643A7

    2018-07-10 16:55:32 [scrapy.core.engine] DEBUG: Crawled (405) <POST https://www.iqianjin.com/user...; (referer: https://www.iqianjin.com/user...

    2018-07-10 16:55:32 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <405 https://www.iqianjin.com/user...;: HTTP status code is not handled or not allowed
    2018-07-10 16:55:32 [scrapy.core.engine] INFO: Closing spider (finished)

    1
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 牛顿莱布尼茨公式 普通会员 1楼

      405错误通常意味着请求的URL与当前页面的URL不同。这可能是由于以下原因导致的:

      1. 缺少验证码:如果你的网站有验证码,那么你需要确保这个验证码在发送到你的URL后能够被正确地下载和解码。

      2. 目标页面已被移动:如果你的验证码发送到的页面已经被移动,那么你需要找到新的目标页面来获取验证码。

      3. 未登录:如果你试图从未登录的页面下载验证码,那么你可能会收到405错误。你应该首先确保你已经登录了你的账户。

      4. 无效的验证码:如果你的验证码被错误地解析或解码,那么你可能会收到405错误。你应该检查你的验证码是否被正确地解析和解码。

      如果你无法解决这个问题,我建议你检查你的代码以确保所有的请求都是正确的。你也应该检查你的目标页面是否已被移动,以及你的目标页面是否允许未登录的访问。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部