接口自動化之cookies登錄


現在有很多網站有驗證碼,跳過驗證碼實現登錄可以使用cookies登錄

 

目錄

1、requests的添加cookies的方法

2、舉個栗子

 

 

1、requests的添加cookies的方法

requests庫里面有個對cookies進行專門處理的類,用法如下:

coo = requests.cookies.RequestsCookieJar()                       #調用處理cookies的這個jar包

coo.set('cookie-name', 'cookie-value', path='/', domain='.xxx.com')  #進行cookies的添加

cookies.update()      #追加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

  

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM