zoukankan      html  css  js  c++  java
  • 爬虫----模拟用户登录gitHub

     #第二次请求:带着初始cookie和TOKEN发送POST请求给登录页面,带上账号密码
     data={
         'commit':'Sign in',
         'utf8':'✓',
         'authenticity_token':authenticity_token,
         'login':'xx@qq.com',
         'password':'xxxx'
     }
     r2=requests.post('https://github.com/session',
                  data=data,
                  cookies=r1_cookie
                  )
     
     
     login_cookie=r2.cookies.get_dict()
     
     
     #第三次请求:以后的登录,拿着login_cookie就可以,比如访问一些个人配置
     r3=requests.get('https://github.com/settings/emails',
                     cookies=login_cookie)
     
     print('xxx@qq.com' in r3.text) #True
    

      

    利用 requests.session,自动保存cookie

    import requests
    import re
    
    session=requests.session()
    #第一次请求
    r1=session.get('https://github.com/login')
    authenticity_token=re.findall(r'name="authenticity_token".*?value="(.*?)"',r1.text)[0] #从页面中拿到CSRF TOKEN
    
    #第二次请求
    data={
        'commit':'Sign in',
        'utf8':'✓',
        'authenticity_token':authenticity_token,
        'login':'xx@qq.com',
        'password':'xxxx'
    }  
    r2=session.post('https://github.com/session',
                 data=data,
                 )
    
    #第三次请求
    r3=session.get('https://github.com/settings/emails')
    print('xxx@qq.com' in r3.text) #True
    requests.session()自动帮我们保存cookie信息
    

      

  • 相关阅读:
    Django REST framework的解析器与渲染器
    python基础之 数据格式化
    REST framework 之 分页
    Django REST framework 之 认证 权限 限制
    DjangoRestFrameWork 版本控制
    DjangoRESTFrameWork中的视图
    浏览器跨域问题
    初识REST
    vue之生命周期
    vue组件
  • 原文地址:https://www.cnblogs.com/yanxiaoge/p/10633773.html
Copyright © 2011-2022 走看看