python接口自動化11-post傳data參數案例


前言:

前面登錄博客園的是傳json參數,有些登錄不是傳json的,如jenkins的登錄,本篇以jenkins登錄為案例,傳data參數。

 

一、登錄jenkins抓包

1.登錄jenkins,輸入賬號和密碼

2.fiddler抓包

3.這個body參數並不是json格式,是key=value格式,也就是前面介紹post請求四種數據類型里面的第二種

 

二、請求頭部

1.上面抓包已經知道body的數據類型了,那么頭部里面Content-Type類型也需要填寫對應的參數類型

 

三、實現登錄

1、登錄代碼如下:

# coding:utf-8
import requests

# 先打開登錄首頁,獲取部分cookie
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 = {"from": "",
     "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
     "j_username": "admin",
     "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1",
     "json": {"j_username": "admin",
              "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
              "remember_me": True,
              "from": "",
              "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1"},
     "remember_me": "on",
     "Submit": u"登錄"
     }
s = requests.session()
r = s.post(url, headers=headers, data=d)
print r.content

2.打印結果

 

四、判斷登錄是否成功

1.首先這個登錄接口有重定向,看左邊會話框302,那登錄成功的結果看最后一個200就行

2.返回的結果並不是跟博客園一樣的json格式,返回的是一個html頁面

 

五、判斷登錄成功

1.判斷登錄成功,可以抓取頁面上的關鍵元素,比如:賬號名稱admin,退注銷按鈕

2.通過正則表達式提出這2個關鍵字

 

六、參考代碼

# coding:utf-8
import requests

# 先打開登錄首頁,獲取部分cookie
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 = {"from": "",
     "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
     "j_username": "admin",
     "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1",
     "json": {"j_username": "admin",
              "j_password": "f7bcd85ebab14e2fbb6d76cc99bc5c6a",
              "remember_me": True,
              "from": "",
              "Jenkins-Crumb": "e677c237181756818cbbccd4296d44f1"},
     "remember_me": "on",
     "Submit": u"登錄"
     }
s = requests.session()
r = s.post(url, headers=headers, data=d)

# 正則表達式提取賬號和登錄按鈕
import re
t = re.findall(r'<b>(.+?)</b>', r.content)
print t[0]
print t[1]

---------------------------------python接口自動化完整版-------------------------

全書購買地址 https://yuedu.baidu.com/ebook/585ab168302b3169a45177232f60ddccda38e695


作者:上海-悠悠 QQ交流群:588402570

也可以關注下我的個人公眾號:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM