题目: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":'317828332@qq.com', "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)