前言:
前面登录博客园的是传json参数,有些登录不是传json的,如jenkins的登录,本篇以jenkins登录为案例,传data参数。
一、登录jenkins抓包
1.登录jenkins,输入账号和密码
2.fiddler抓包
3.这个body参数并不是json格式,是key=value格式,也就是前面介绍post请求四种数据类型里面的第二种
二、请求头部
1.上面抓包已经知道body的数据类型了,那么头部里面Content-Type类型也需要填写对应的参数类型
三、实现登录
1、登录代码如下:
1 # coding:utf-8 2 import requests 3 4 # 先打开登录首页,获取部分cookie 5 url = "http://localhost:8080/jenkins/j_acegi_security_check" 6 headers = { 7 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0" 8 } # get方法其它加个ser-Agent就可以了 9 d = {"from": "", 10 "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a", 11 "j_username": "admin", 12 "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1", 13 "json": {"j_username": "admin", 14 "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a", 15 "remember_me": True, 16 "from": "", 17 "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1"}, 18 "remember_me": "on", 19 "Submit": u"登录" 20 } 21 s = requests.session() 22 r = s.post(url, headers=headers, data=d) 23 print r.content
2.打印结果
四、判断登录是否成功
1.首先这个登录接口有重定向,看左边会话框302,那登录成功的结果看最后一个200就行
2.返回的结果并不是跟博客园一样的json格式,返回的是一个html页面
五、判断登录成功
1.判断登录成功,可以抓取页面上的关键元素,比如:账号名称admin,退注销按钮
2.通过正则表达式提出这2个关键字
六、参考代码
1 # coding:utf-8 2 import requests 3 4 # 先打开登录首页,获取部分cookie 5 url = "http://localhost:8080/jenkins/j_acegi_security_check" 6 headers = { 7 "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0" 8 } # get方法其它加个ser-Agent就可以了 9 d = {"from": "", 10 "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a", 11 "j_username": "admin", 12 "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1", 13 "json": {"j_username": "admin", 14 "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a", 15 "remember_me": True, 16 "from": "", 17 "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1"}, 18 "remember_me": "on", 19 "Submit": u"登录" 20 } 21 s = requests.session() 22 r = s.post(url, headers=headers, data=d) 23 24 # 正则表达式提取账号和登录按钮 25 import re 26 t = re.findall(r‘<b>(.+?)</b>‘, r.content) 27 print t[0] 28 print t[1]
原文地址:https://www.cnblogs.com/jason89/p/9028261.html
时间: 2024-10-08 18:28:12