zoukankan      html  css  js  c++  java
  • 使用request实现手工输入验证码登录

    我们的目标网站是这个http://awehome.com.cn,登录页面是这个http://awehome.com.cn/tenant/login

    import requests
    import json
    
    url = 'http://awehome.com.cn/tenant/login'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
        'Host': 'awehome.com.cn'
    }
    session = requests.session()
    html = session.get(url=url,headers=headers)

    搜索我们使用request的session来保存会话并且进入登录页面,他是这样的

    我们先来获取验证码,直接通过html.text来获取是找不到他里面的图片的URL的。

    <div class="form-group">
              <label for="LoginCaptcha">验证码</label>
              <div class="code-group02">
              <input type="text" class="form-control" name="Login[captcha]" 
                                                      v-model="login.captcha" 
                                                      id="LoginCaptcha" 
                                                      autocomplete="off" 
                                                      placeholder="验证码">
              <img class="captcha" v-on:click="onCaptcha" id="LoginCaptchaImg">
              </div>
            </div>

    html.text这里面是没有src的,他是渲染出来的, 所有我们去找这个js,发现他的函数就在login.js里面。

    onCaptcha: function(e){
                    var self = this;
    
                    self.$http.get('/site/captcha?refresh=true').then(function(response){
                        $('#LoginCaptchaImg').attr('src', response.body.url);
                    }, function(response){
                        alert(response.statusText);
                    });

    在login.js我们可以找到这个,可以发现他是通过ajax给/site/captcha?refresh=true发送获取到数据然后将里面的response.body.url也就是验证码的URL设置给src标签。

    我们找一下site/captcha?refresh=true这个的包,就是‘http://awehome.com.cn/site/captcha?refresh=true’这个URL。他里面的内容是这样

    {"hash1":461,"hash2":461,"url":"/site/captcha?v=5c2735667c357"}

    然后我们看到里面的URL,其实他就是验证码图片的URL。既然我们找到图片的URL就简单了,将他保存下来然后手动查看输入验证码即可。全部代码在这

    import requests
    import json
    
    url = 'http://awehome.com.cn/tenant/login'
    headers = {
        'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
        'Host': 'awehome.com.cn'
    }
    session = requests.session()
    html = session.get(url=url,headers=headers)
    url1 = 'http://awehome.com.cn/site/captcha?refresh=true'
    headers['Referer'] = url
    html = session.get(url=url1,headers=headers)
    img = json.loads(html.text)
    url2 = 'http://awehome.com.cn'+ img['url']
    img = session.get(url=url2)
    with open('img.png','wb') as f:
        f.write(img.content)
    img = input('请输入验证码')
    data = {
        'referer': 'http://awehome.com.cn/',
        'Login[dialcode]': '86',
        'Login[phone]': 'xxxxxxx',
        'Login[captcha]': str(img),
        'Login[password]': 'xxxx',
        'Login[rememberMe]': '0'
    }
    url='http://awehome.com.cn/tenant/login'
    data_headers = {
    'Accept': 'application/json, text/plain, */*',
    'Accept-Encoding': 'gzip, deflate',
    'Accept-Language': 'zh-CN,zh;q=0.9',
    'Connection': 'keep-alive',
    'Content-Length': '164',
    'Content-Type': 'application/x-www-form-urlencoded',
    'Host': 'awehome.com.cn',
    'Origin': 'http://awehome.com.cn',
    'Referer': 'http://awehome.com.cn/tenant/login',
    'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
    'X-Requested-With': 'XMLHttpRequest'
    
    }
    html = session.post(url=url,headers=data_headers,data=data)
    url='http://awehome.com.cn/'
    html = session.get(url=url,headers=headers)
    print(html)
    print(html.text)

    大概步骤是先请求登录页面,然后通过抓包找到图片URL,接着提交请求。

  • 相关阅读:
    产品需求说明书PRD模版
    会编程的 AI + 会修 Bug 的 AI,等于什么 ?
    会编程的 AI + 会修 Bug 的 AI,等于什么 ?
    会编程的 AI + 会修 Bug 的 AI,等于什么 ?
    luogu P1164 小A点菜
    luogu P1347 排序
    luogu P1195 口袋的天空
    luogu P1182 数列分段Section II
    luogu P1332 血色先锋队
    luogu P1983 车站分级
  • 原文地址:https://www.cnblogs.com/dayouzi/p/10197008.html
Copyright © 2011-2022 走看看