• python模拟艺龙网登录带验证码输入


    1.使用urllib与urllib2包

    2.使用cookielib自动管理cookie

    3.360浏览器F12抓信息

    登录请求地址和验证码地址都拿到了如图

     # -*- coding: utf-8 -*-
    
    import urllib2
    import urllibimport cookielib
    
    '''
    思路:
    1.通过cookie对象下载验证码图片到本地
    2.手工填写验证码
    3.登录
    4.拿到返回的登录信息
    '''
    
    #将cookie绑定到对象opener,cookie由cookielib自动管理
    cookie = cookielib.CookieJar()
    handler = urllib2.HTTPCookieProcessor(cookie)
    opener = urllib2.build_opener(handler)
    
    #验证码url和登录url
    codeurl = 'https://secure.elong.com/passport/getValidateCode'
    loginurl='https://secure.elong.com/passport/ajax/elongLogin'
    
    #根据验证码地址,下载图片到d:/test.gif
    picture = opener.open(codeurl).read()
    local = open('d:/test.gif','wb')
    local.write(picture)
    local.close()
    
    #打开本验证码图片,填写验证码
    codePic = raw_input('input please:')
    
    #登录post fromData数据
    postData = {'userName':'13718651238',
                'passwd':'abcdef0120',
                'validateCode':codePic,
                'rememberMe':'false'}
    
    #获取的头信息
    headers = {
    'Accept': '*/*',
    'Accept-Language': 'zh-CN,zh;q=0.8',
    'Connection': 'keep-alive',
    'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36',
    }
    
    data = urllib.urlencode(postData)#将数据转换为key1&value&key2&value
    request = urllib2.Request(loginurl,data,headers)#发起登录请求
    response = opener.open(request)#根据最开始获取的的cookie对象,获取响应信息
    result = response.read()#读取
    print result

    执行一下,手工输入验证码,成功信息:

  • 相关阅读:
    Shell编程学习1-变量的高级用法
    Ubuntu新机配置深度学习环境遇到的问题
    Python细致技巧总结(不断更新)
    图片着色后存储为“JPEG”格式存在明显色差问题解决
    python图片合成视频
    caffe-ssd安装问题解决
    python画图
    python split(),os.path.split()和os.path.splitext()函数用法
    转载:mysql 存储过程
    css实现div框阴影
  • 原文地址:https://www.cnblogs.com/yhleng/p/6761199.html
Copyright © 2020-2023  润新知