#不同网页有不同的cookie验证方式,具体情况不定得看情况,这个要一个一个测试,然后多多验证cookie的信息变化
import requests
from bs4 import BeautifulSoup
#导入相应的包
r1 = requests.get('https://github.com/login')
#网页上找到相应的登录url网页
s1 = BeautifulSoup(r1.text,'html.parser')
#解析网址得到text
token = s1.find(name='input',attrs={'name':'authenticity_token'}).get('value')
#验证token,找到登录的token
r1_cookie_dict = r1.cookies.get_dict()
#定义cookie,从第一次请求网页中得到cookie值
# print(token)
#打印token,获取token
r2 = requests.post(
#第二次requests请求,用post方法
'https://github.com/session',
#post方法请求这个网址url,这个怎么看出来的呢?
#session网址url就是在你输入用户名密码,点击登录后的网址url,所以接下来post方法请求这个网址
data ={
"utf8": '✓',
"authenticity_token": token,
"login": '输入你自己的用户名',
"password":'输入你自己的密码',
"commit": 'Sign in'
},
#post方法不是提交东西后的请求吗?应该是有返回值的,不知道什么重要的情况下全都加上,
cookies = r1_cookie_dict
#带着第一次访问请求的cookie去,这个网址带有cookie验证
)
r2_cookie_dict = r2.cookies.get_dict()
#得到第二次的cookie的值,从提交用户登录信息后返回的cookie
# print(r1.cookies)
# print(r2.cookies)
#分别打印第一次get方法请求的得到的cookie和第二次post提交信息之后得到的cookies
cookie_dict = {}
cookie_dict.update(r1_cookie_dict)
cookie_dict.update(r2_cookie_dict)
#两个cookies值综合成一个
r3 = requests.get(
#第三次请求就是解析想要网址url的数据了,因为已经登录了
url = 'https://github.com/settings/emails',
cookies = cookie_dict
#携带综合后的cookie
)
print(r3.text)
#打印第三次的访问解析网页信息