python接口自動化發送get請求 詳解(一)


前言:接口自動化實現自動化腳本比較穩定,主要用到requests模塊,后面我會把這個模塊單獨拉出來寫一下。

一、環境安裝

1.用pip安裝requests模塊

>>pip install requests

注意:pip很容易就會版本升級,

  方法1:檢測並更新

pip list –outdated

  方法2:

    ♦先卸載:

pip uninstall packagename

    ♦在用:easy_install.exe安裝

easy_install.exe pip

二、get請求

  ♦1.導入requests后,用get方法就能直接訪問url地址,如:http://open.juhe.cn/#page1,看起來是不是很酷

  ♦2.這里的r也就是response,請求后的返回值,可以調用response里的status_code方法查看狀態碼

  ♦3.狀態碼200只能說明這個接口訪問的服務器地址是對的,並不能說明功能OK,一般要查看響應的內容,response .text是返回文本信息

 輸入代碼:

import requests#導入request模塊
url = 'http://open.juhe.cn/#page1' response = requests.get(url)#用導入的request模塊的get方法訪問URL
print(response.status_code)#調用response里的status_code方法查看狀態碼
print(response.text)#調用response里的text #字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼

輸出結果:

三、發送帶有params(參數)的get請求

  ♦1.再發一個帶參數的get請求,如在百度中搜:聚合數據網,url地址為:https://read.douban.com/search?q=斗破蒼穹

  ♦2.請求參數:q=斗破蒼穹,可以以字典的形式傳參:{"q": "斗破蒼穹"}

  ♦3.多個參數格式:{"key1": "value1", "key2": "value2", "key3": "value3"}

  ♦4.發送請求格式是:URL+參數:實例:requests.get(url=url,params=params1)

代碼輸入:

import requests#導入request模塊
url = r'https://read.douban.com/search' params1 = {"q":"斗破蒼穹"} response = requests.get(url=url,params=params1)#用導入的request模塊的get方法訪問URL,並在后面加上參數
print(response.status_code)#調用response里的status_code方法查看狀態碼
print(response.text)#調用response里的text #字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼

輸出結果:

 

 

四、content

  ♦1.百度首頁如果用r.text會發現獲取到的內容有亂碼,因為百度首頁響應內容是gzip壓縮的(非text文本)

  ♦2.如果是在fiddler工具亂碼,是可以點擊后解碼的,在代碼里面可以用r.content這個方法,content會自動解碼 gzip 和deflate壓縮

 

五、response

  ♦1.response的返回內容還有其它更多信息

  -- r.status_code     #響應狀態碼
  -- r.content           #字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮
  -- r.headers          #以字典對象存儲服務器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回None
  -- r.json()             #Requests中內置的JSON解碼器
  -- r.url                  # 獲取url
  -- r.encoding         # 編碼格式
  -- r.cookies           # 獲取cookie
  -- r.raw                #返回原始響應體
  -- r.text               #字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼
  -- r.raise_for_status() #失敗請求(非200響應)拋出異常

代碼如下:

 

import requests#導入request模塊
url = r'https://read.douban.com/search' params1 = {"q":"斗破蒼穹"} response = requests.get(url=url,params=params1)#用導入的request模塊的get方法訪問URL,並在后面加上參數
print(response.status_code)#調用response里的status_code方法查看狀態碼
print(response.headers)   #以字典對象存儲服務器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回None
print(response.content)#字節方式的響應體,會自動為你解碼 gzip 和 deflate 壓縮 #print(response.json()) #Requests中內置的JSON解碼器
print(response.url)      # 獲取url
print(response.cookies)  # 獲取cookie
print(response.encoding) # 編碼格式
print(response.raw)  #返回原始響應體
print(response.text)#調用response里的text #字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼 #print(response.raise_for_status()) #失敗請求(非200響應)拋出異常

 

輸出結果如下:

 

                                                       

                                                 哪有不對歡迎指出哦。


免責聲明!

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



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