上一篇cookie繞過驗證碼模擬登陸博客園,但這只是第一步,通常登陸後,還會有其它的操做,如發帖,評論等等,這時候如何保持會話呢?這裏我以jenkins平臺爲例,給小夥伴們在沙場演練一下。python
一、經過help方法查看幫助文檔,截圖一部分,後面省略了,有興趣的本身能夠敲一下看看正則表達式
二、參考代碼json
1 # coding:utf-8
2 import requests
3 help(requests.session())複製代碼
一、使用session登陸只需在登陸的基礎上稍作修改,便可bash
二、參考代碼微信
# coding:utf-8
import requests
# 先打開登陸首頁,獲取部分session
url = "http://localhost:8080/jenkins/j_acegi_security_check"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
} # get方法其它加個ser-Agent就能夠了
d = {"j_username": "admin",
"j_password": "111111",
"from": "",
"Submit": u"登陸",
"remember_me": "on"
}
s = requests.session()
r = s.post(url, headers=headers, data=d)
#print (r.content.decode('utf-8'))複製代碼
一、先打開新建任務,手動輸入任務名稱和選擇下邊選項後,打開fiddler抓包,而後點擊「肯定」cookie
fiddler抓包session
二、把body的參數內容寫成字典格式post
參考代碼:學習
1 body = {"name":"北京-宏哥1",
2 "mode": "hudson.model.FreeStyleProject",
3 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
4 "json":{"name":"北京-宏哥1",
5 "mode": "hudson.model.FreeStyleProject",
6 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
7
8 }
9 }複製代碼
三、用上面登陸保存的session繼續發送post請求,來新建任務ui
四、執行後,查看全部任務就多了一條新增的了
五、運行結果部分截圖:
六、粘貼到記事本修改後綴查看:
1 # coding:utf-8
2 import requests
3 # 先打開登陸首頁,獲取部分session
4 url = "http://localhost:8080/jenkins/j_acegi_security_check"
5 headers = {
6 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0"
7 } # get方法其它加個ser-Agent就能夠了
8 d = {"j_username": "admin",
9 "j_password": "111111",
10 "from": "",
11 "Submit": u"登陸",
12 "remember_me": "on"
13 }
14
15 s = requests.session()
16 r = s.post(url, headers=headers, data=d)
17 #print (r.content.decode('utf-8'))
18 # 正則表達式提取帳號和登陸按鈕
19 import re
20 t = re.findall(r'<b>(.+?)</b>', r.content.decode('utf-8')) # 用python3的這裏r.content須要解碼
21 print (t[0])
22 print (t[1])
23 #新建任務
24 url1 = "http://localhost:8080/jenkins/createItem"
25 body = {"name":"北京-宏哥1",
26 "mode": "hudson.model.FreeStyleProject",
27 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906",
28 "json":{"name":"北京-宏哥1",
29 "mode": "hudson.model.FreeStyleProject",
30 "Jenkins-Crumb":"51a97fc7fbf3792823230d9bdd7ec906"
31
32 }
33 }
34
35 r2 = s.post(url1, data=body, verify=False)
36 print (r2.content.decode('utf-8'))複製代碼
這裏我是用新建任務寫的案例,小夥伴能夠試下Jenkins裏邊其餘的關聯接口
小夥伴都看到了吧,session關聯接口就是這麼簡單!!!趕快動起來吧。想要學習的小夥伴能夠用博客園來練習一下,遇到問題歡迎打擾和溝通!