您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Python中怎么發送Get請求,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。
一、Python 命名規范
1.是英文字符、下劃線__、數字三個組成。
2.項目(工程)名稱、文件包名、模塊名稱等是英文開頭,不能純數字,下劃線開頭的有特殊含義,不能亂用。
3.腳本的名稱不能跟系統的模塊或第三方模塊重復,例如requests/unittest/selenium等。
4.函數、類、方法、參數的名稱不能和系統現有的名稱重復。
5.類名稱必須大寫字母開頭。除了類名稱,其它地方都用小寫開頭。命名規范最好遵守駝峰法和下劃線法,例如:qingHan、qing_han
6.不要用中文、特殊字符(:;@等),有些特殊字符是有特殊作用的。
二、發送 get 請求
1.安裝 requests
cmd 中安裝 requests:
安裝:pip install requests
卸載:pip uninstall requests
查看:pip list
切記安裝的時候把抓包工具關了。
如果安裝報錯 timeout,因為沒 fq,可以這樣裝:
pip install -i http://mirrors.aliyun.com/pypi/simple/ requests
附上國內常見的鏡像源
鴻蒙官方戰略合作共建——HarmonyOS技術社區
阿里云 http://mirrors.aliyun.com/pypi/simple/
中國科技大學 https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣(douban) http://pypi.douban.com/simple/
清華大學 https://pypi.tuna.tsinghua.edu.cn/simple/
中國科學技術大學 http://pypi.mirrors.ustc.edu.cn/simple/
requests 官方文檔:https://requests.readthedocs.io/zh_CN/latest/
2.發送 get 請求
一個完整的 get 請求,應該包括請求行(url)和請求頭(headers)、請求參數(params)。
import requests # get請求:url+params請求參數 url="http://v.juhe.cn/laohuangli/d" # params 建議參數單獨拿出來,這樣寫 p={"key":"abf91475fc19f66c2f1fe567edd75257", "date":"2014-09-11"} a=requests.get(url,params=p) #發請求 print(a.status_code)#狀態碼 print(a.text)#raw 文本內容 print(a.headers)#dict print(a.headers['Date'])#key print(a.cookies)#RequestsCookieJar
3.如何判斷發送 get 請求要不要傳請求頭部?
先在 fiddler 中去掉請求頭部,用這個接口發下請求試試,如果是正常返回 200 就可以不傳頭部,如果在工具中發送請求后,提示 403 - Forbidden: Access is denied,那么就需要傳頭部。
請求頭中那么多參數,哪些參數需要呢?
在工具中把請求頭中的參數挨個刪掉試試,不行的話就要加上了。
這個是看開發怎么實現的了,自己寫接口自動化代碼的時候最好寫上請求頭,這樣規范一些。
4.傳入請求頭
頭部寫成字典格式,headers=headers,傳入請求頭。
有些響應內容是 gzip 壓縮的,text 只能打印文本內容,用 content 是二進制流。一般獲取返回值內容,推薦用 content。
import requests url="https://www.baidu.com" # 構建請求頭 headers = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.89 Safari/537.36' } r=requests.get(url,headers=headers) print(r.status_code) print(r.text)# html亂碼 print(r.content.decode("utf-8")) #decode解壓縮展示中文
5.權限被拒:403 - Forbidden: Access is denied
url 和請求參數都對,卻沒權限。可能原因:服務器識別到你是代碼請求的,防腳本機制。
解決辦法:需要身份驗證,代碼中的請求頭部加上 cookies)。例如:
圖片來自網絡
三、response 的返回內容還有其它更多信息
a.status_code 響應狀態碼。
a.content 字節方式的響應體,會自動為你解碼 gzip 和 eflate 壓縮。
a.headers 以字典對象存儲服務器響應頭,但是這個字典比較特殊,字典鍵不區分大小寫,若鍵不存在則返回 None。
a.json() Requests 中內置的 JSON 解碼器 ,json 轉成 python 的字典了。
a.url 獲取 url。
a.encoding 編碼格式。
a.cookies 獲取返回的 cookie。
a.text字符串方式的響應體,會自動根據響應頭部的字符編碼進行解碼。
a.raise_for_status() 失敗請求(非 200 響應)拋出異常。
關于Python中怎么發送Get請求就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。