爬虫----模拟用户登录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信息

浙公网安备 33010602011771号