现在有很多网站有验证码,跳过验证码实现登录可以使用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