Python代码登录

题目:Python代码登录GitHub

          1.登录页面发送请求GET,获取csrftoken

          2.发送POST请求

                         用户名

                         密码

                         csrftoken

                  cookie

           以后:

            requests

                    obj = requests.get(url")

                    obj.content

                    obj.enconding = "gbk"

                    obj.text

                    obj.cookies.get_dic()   获取cookie

                    requests.get("url",cookies={'k1':"v1"})   #携带cookie

import requests

from bs4 import BeautifulSoup
#requests里面有cookie这一说,可以获取cookie,可以带着cookie
r1 = requests.get('https://github.com/login')   #去登录页面里面找东西.去页面找csrf或者token
s1 = BeautifulSoup(r1.text,'html.parser')
token = s1.find(name = 'input',attrs={'name':'authenticity_token'}).get('value')
# print(token)
r1_cookie_dict = r1.cookies.get_dict()   #cookie就是一个随机字符串
"""
每个人的网站去写时,他的登录验证方式都可能是不同的,从cookie这儿就能表现出来。
他有两种模式:1、登录成功时,发送post请求时,他才给用户一个cookie
             2、用户第一次发get请求时,他就把cookie给用户了,但是此时的cookie在后台还没授权,没标注他已经登录成功下次拿着cookie
             去,他在给他标识登录成功,相当于授权
"""

#将用户密码token发送到服务端,post
"""
authenticity_token 0d2SMiJwkXWXHdfKTFEzTkrpAYu9GiFre/joIjSXfLMLO5cSauJjSxAaFkIE92ECD7Tzxe1tCFLUP9eHkIzb9A==
commit Sign+in
login  sad
password   asd
utf8   ✓
"""
r2 = requests.post('https://github.com/session',
                   data={
                       "authenticity_token":token,
                       "commit":'Sign+in',
                       "login":'[email protected]',
                       "password":'alex3714',
                       "utf8":'✓'

                   },
                   cookies = r1_cookie_dict

                   )
print(r2.text)
r2_cookie_dict = r2.cookies.get_dict()
cookie_dict = {}
cookie_dict.update(r1_cookie_dict)
cookie_dict.update(r2_cookie_dict)


#
r3 = requests.get(
    url = 'https://github.com/settings/emails',
    cookies = cookie_dict
)
print(r3.text)


你可能感兴趣的:(python学习笔记)