zoukankan      html  css  js  c++  java
  • python模拟艺龙网登录requests包

    对比urllib、urllib2与requests不难发现,前者功能更强大,但是实现一个功能要写很多的代码,后者,requests代码简洁,用起来更快速

    下面一个模拟登录的代码:看看吧一共也没有几行就实现了。

    #-*- coding:utf-8 -*-
    
    from requests import Request,Session
    import json
    s =Session()
    codeurl = 'https://secure.elong.com/passport/getValidateCode'
    loginurl='https://secure.elong.com/passport/ajax/elongLogin'
    
    code = s.get(codeurl)//这句不加会提示验证码错误
    #print code.content
    postData = {'userName':'13718651668',
                'passwd':'yhlexx8701xx',
                'validateCode':'1234',
                'rememberMe':'false'}
    reponse = s.post(loginurl,data=postData)
    print reponse.text

    #如果需要取结果中的值做登录后的后续操作,可以使用json方式,很方便
    esid = json.loads(reponse.text)["esid"]
    print esid

    c ='http://my.elong.net/Connection_en.html?SessionTag='+esid+'nextUrl=http%3A%2F%2Fmy.elong.com%2FCashCoupon_cn.html&expireTime=0'
    r = s.get(c)
    print r.content

    登录是成功的,但是从返回的结果中可以看出,本次登录不需要验证码输入。

    有一些网站,只要不输入密码错误,是不是需要输入验证码的。

    猜测这个是在session中做的记录,这里呢每次执行重新创建session,即使密码错误也不会提示输入验证码。竞然把验证码避过了。

    我也不是很明白,有懂的同学,给回复下。学习一下,谢谢!

  • 相关阅读:
    非对称加密的理解
    常见META标签和针对SEO优化的设置
    shadow DOM
    浏览器渲染机制
    设计模式06---生产者消费者模式
    spring04-----Ioc容器实例化Bean
    设计模式05----装饰者模式
    Spring03-----Ioc的配置使用
    设计模式04----原型设计模式(prototype)
    设计模式03------单例模式
  • 原文地址:https://www.cnblogs.com/yhleng/p/6767364.html
Copyright © 2011-2022 走看看