现在有很多网站有验证码,跳过验证码实现登录可以使用cookies登录
目录
1、requests的添加cookies的方法
2、举个栗子
1、requests的添加cookies的方法
requests库里面有个对cookies进行专门处理的类,用法如下:
2、举个栗子
实现登录操作如下:
第一步:方法登录前页面,获取部分cookies
url2="http://mysrc.sinaapp.com/accounts/login/" s=requests.session() r=s.get(url2)
第二步:调用cookies的jar包,来添加cookies,特别的,我们不知道需要添加哪些cookies时,可以通过fiddler来对比,登录后比登录前多了什么
c=requests.cookies.RequestsCookieJar()
#域名一定要填写,不然会报错
c.set('csrftoken','JIrj423TaumVWIym5TT0Gy0uAybmSAWi',path='/', domain='mysrc.sinaapp.com')
c.set('sessionid','4831409ded4f674da3af33625b99e7e7',path='/', domain='mysrc.sinaapp.com')
#更新一下cookies
s.cookies.update(c)

登录后:

第三步:访问需要登录的接口
data1={
"search_text":"1",
"page":"1"
}
url1="http://mysrc.sinaapp.com/search/"
r1=s.post(url1,data=data1)
这个时候可以看到,访问的内容是登录后

完整代码:
# coding:utf-8
import requests
url2="http://mysrc.sinaapp.com/accounts/login/"
s=requests.session()
r=s.get(url2)
#使用cookies的set方法将cookies信息填进去
c=requests.cookies.RequestsCookieJar()
print s.cookies
#域名一定要填写,不然会报错
c.set('csrftoken','JIrj423TaumVWIym5TT0Gy0uAybmSAWi',path='/', domain='mysrc.sinaapp.com')
c.set('sessionid','4831409ded4f674da3af33625b99e7e7',path='/', domain='mysrc.sinaapp.com')
#更新一下cookies
s.cookies.update(c)
print s.cookies
data1={
"search_text":"1",
"page":"1"
}
url1="http://mysrc.sinaapp.com/search/"
r1=s.post(url1,data=data1)
print s.cookies
print r1.content
