上一篇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关联接口就是这么简单!!!赶快动起来吧。想要学习的小伙伴能够用博客园来练习一下,遇到问题欢迎打扰和沟通!