python接口自动化(十一)--发送post【data】(详解)

简介: 前面登录博客园的是传 json 参数,由于其登录机制的改变没办法演示,然而在工作中有些登录不是传 json 的,如 jenkins 的登录,这里小编就以jenkins 登录为案例,传 data 参数,给各位童鞋详细演练一下。

简介 


  

前面登录博客园的是传 json 参数,由于其登录机制的改变没办法演示,然而在工作中有些登录不是传 json 的,如 jenkins 的登录,这里小编就以jenkins 登录为案例,传 data 参数,给各位童鞋详细演练一下。


一、登录jenkins抓包


1、浏览器上登录jenkins,输入账号和密码,点击登录


1232840-20190409104912554-2057818411.png

 

2、fiddler抓包工具抓取jenkins登录的过程


1232840-20190409104957864-1906678021.png


3、可以清楚地看到这个body参数并不是json格式,是key=value格式,也就是前面介绍post请求四种数据类型里面的第一种


1232840-20190326153546758-1080778198.png

 

二、请求头部


1.上面抓包已经知道body的数据类型了,那么头部里面Content-Type类型也需要填写对应的参数类型


614655-20170904220738929-1796950581.png


三、实现登录


1、登录实例代码如下:


注意:此处的登录URL是fiddler抓包抓到的,而并非是浏览器的URL地址,如果你复制的是浏览器的地址,就会报错了

# 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')
)


2、运行后的结果如下:


1232840-20190409110231035-1632164720.png


3、为了更好地查看你可以将其拷贝到记事本,保存,然后将文件后缀名修改成.html或者.htm,用浏览器打开查看


1232840-20190409111957961-1617125551.png

 

四、判断登录是否成功


1.首先这个登录接口有重定向,看左边会话框302,那登录成功的结果看最后一个200就行

614655-20170904220819194-218604847.png



2.返回的结果并不是跟博客园一样的json格式,返回的是一个html页面


五、判断登录成功


1.判断登录成功,可以抓取页面上的关键元素,比如:账号名称admin,注销按钮


 1232840-20190326155254663-1114019940.png


2.通过正则表达式提出这2个关键字


1232840-20190409110411277-2010459.png


六、参考代码


# 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'))
# 正则表达式提取账号和登录按钮
import re
t = re.findall(r'<b>(.+?)</b>', r.content.decode('utf-8'))   # 用python3的这里r.content需要解码
 print (t[0])
 print (t[1])


七、遇到问题可解决方法



注意这里边遇到的问题python3遇到的问题,或许python2没有这些问题,笔者没有实践,有兴趣的自己可以试一下

1、如果打印content,没有加后边的.decode('utf-8'),会出现乱码,解决方法加上即可。


2、如果正则提取没有加.decode('utf-8'),会报如下错误,解决方案也是加上即可


八、小结


  

jenkins 代码模拟登陆到这里就结束,实际工作中的登录接口也就是这些,记住万变不离其宗,举一反三。

相关文章
|
6月前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。
|
7月前
|
缓存 监控 算法
item_get - Lazada 商品详情详情接口深度分析及 Python 实现
Lazada商品详情接口item_get可获取商品全维度数据,包括价格、库存、SKU、促销及卖家信息,支持东南亚六国站点,适用于竞品监控、定价策略与市场分析,助力跨境卖家精准决策。
|
7月前
|
JSON 监控 数据格式
1688 item_search_app 关键字搜索商品接口深度分析及 Python 实现
1688开放平台item_search_app接口专为移动端优化,支持关键词搜索、多维度筛选与排序,可获取商品详情及供应商信息,适用于货源采集、价格监控与竞品分析,助力采购决策。
|
7月前
|
缓存 供应链 监控
VVIC seller_search 排行榜搜索接口深度分析及 Python 实现
VVIC搜款网seller_search接口提供服装批发市场的商品及商家排行榜数据,涵盖热销榜、销量排名、类目趋势等,支持多维度筛选与数据分析,助力选品决策、竞品分析与市场预测,为服装供应链提供有力数据支撑。
|
7月前
|
缓存 监控 算法
唯品会item_search - 按关键字搜索 VIP 商品接口深度分析及 Python 实现
唯品会item_search接口支持通过关键词、分类、价格等条件检索商品,广泛应用于电商数据分析、竞品监控与市场调研。结合Python可实现搜索、分析、可视化及数据导出,助力精准决策。
|
6月前
|
存储 数据采集 监控
Python定时爬取新闻网站头条:从零到一的自动化实践
在信息爆炸时代,本文教你用Python定时爬取腾讯新闻头条,实现自动化监控。涵盖请求、解析、存储、去重、代理及异常通知,助你构建高效新闻采集系统,适用于金融、电商、媒体等场景。(238字)
993 2
|
7月前
|
缓存 监控 算法
苏宁item_get - 获得商品详情接口深度# 深度分析及 Python 实现
苏宁易购item_get接口可实时获取商品价格、库存、促销等详情,支持电商数据分析与竞品监控。需认证接入,遵守调用限制,适用于价格监控、销售分析等场景,助力精准营销决策。(238字)
|
7月前
|
监控 算法 数据安全/隐私保护
唯品会 item_get - 获得 VIP 商品详情接口深度分析及 Python 实现
唯品会item_get接口通过商品ID获取商品详情,支持价格、库存、促销等数据抓取,适用于电商分析、竞品监控与价格追踪,结合Python实现可高效完成数据获取、分析与可视化,助力精准营销决策。

推荐镜像

更多