前言:接口自動化實現自動化腳本比較穩定,主要用到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響應)拋出異常
輸出結果如下:
哪有不對歡迎指出哦。