python接口自動化(Cookie_繞過驗證碼登陸)python
有些登陸的接口會有驗證碼,例如:短信驗證碼,圖形驗證碼等,這種登陸的驗證碼參數能夠從後臺獲取(或者最直接的可查數據庫)數據庫
獲取不到也不要緊,能夠經過添加Cookie的方式繞過驗證碼瀏覽器
1、Cookie介紹安全
1. cookie 特色服務器
2.抓取登陸cookiecookie
登陸cookie = 登陸後的cookies - 登陸前的cookiessession
2、抓登陸cookiedom
1.獲取登陸前的cookie:先打開登陸首頁,刷新一下,經過抓包,獲取部分cookie工具
2.獲取登陸後的cookie:登陸成功後,再查看cookie變化,發現多了兩組參數,多的這兩組參數就是咱們想要的網站
3、cookie組成結構
1.用抓包工具fidller只能看到cookie的name和value兩個參數,實際上cookie還有其它參數
2.如下是一個完整的cookie組成結構
cookie ={
u'domain': u'.cnblogs.com',
u'name': u'.CNBlogsCookie',
u'value': u'xxxx',
u'expiry': 1491887887,
u'path': u'/',
u'httpOnly': True,
u'secure': False}
domain:服務器域名
name:cookie的名稱
value:cookie對應的值,動態生成的
expiry:cookie有效終止日期
path:path屬性定義了Web服務器上哪些路徑下的頁面可獲取服務器設置的cookie
httpOnly:防腳本攻擊
secure:在cookie中標記該變量,代表只有當瀏覽器和Web Server之間的通訊協議爲加密認證協議時,瀏覽器才向服務器提交相應的cookie。當前這種協議只有一種,即爲HTTPS
4、添加cookie
1.往 session 裏面添加cookie能夠用如下方式
2. set 裏面參數按括號裏面的參數格式
c = requests.cookies.RequestsCookieJar()
c.set('cookie-name', 'cookie-value', path='/', domain='.xxx.com')
s.cookies.update(c)
3.因而添加登陸的cookie,把第一步 fiddler 抓到的內容填進去就能夠了
c = requests.cookies.RequestsCookieJar()
c.set('.CNBlogsCookie', 'xxx')
c.set('.Cnblogs.AspNetCore.Cookies','xxx')
s.cookies.update(c)
print(s.cookies)