日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
基礎(chǔ)篇Python發(fā)送Get請(qǐng)求之如何放請(qǐng)求頭、參數(shù)、獲取返回內(nèi)容

目錄

成都創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、萊陽(yáng)網(wǎng)絡(luò)推廣、小程序設(shè)計(jì)、萊陽(yáng)網(wǎng)絡(luò)營(yíng)銷、萊陽(yáng)企業(yè)策劃、萊陽(yáng)品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供萊陽(yáng)建站搭建服務(wù),24小時(shí)服務(wù)熱線:13518219792,官方網(wǎng)址:www.cdcxhl.com

  • 一、Python 命名規(guī)范
  • 二、發(fā)送 get 請(qǐng)求
    • 1.安裝 requests
    • 2.發(fā)送 get 請(qǐng)求
    • 3.如何判斷發(fā)送 get 請(qǐng)求要不要傳請(qǐng)求頭部?
    • 4.傳入請(qǐng)求頭
    • 5.權(quán)限被拒:403 - Forbidden: Access is denied
  • 三、response 的返回內(nèi)容還有其它更多信息

一、Python 命名規(guī)范

  • 1.是英文字符、下劃線__、數(shù)字三個(gè)組成。
  • 2.項(xiàng)目(工程)名稱、文件包名、模塊名稱等是英文開頭,不能純數(shù)字,下劃線開頭的有特殊含義,不能亂用。
  • 3.腳本的名稱不能跟系統(tǒng)的模塊或第三方模塊重復(fù),例如requests/unittest/selenium等。
  • 4.函數(shù)、類、方法、參數(shù)的名稱不能和系統(tǒng)現(xiàn)有的名稱重復(fù)。
  • 5.類名稱必須大寫字母開頭。除了類名稱,其它地方都用小寫開頭。命名規(guī)范最好遵守駝峰法和下劃線法,例如:qingHan、qing_han
  • 6.不要用中文、特殊字符(:;@等),有些特殊字符是有特殊作用的。

二、發(fā)送 get 請(qǐng)求

1.安裝 requests

cmd 中安裝 requests:

安裝:pip install requests

卸載:pip uninstall requests

查看:pip list

切記安裝的時(shí)候把抓包工具關(guān)了。

如果安裝報(bào)錯(cuò) timeout,因?yàn)闆] fq,可以這樣裝:

 
 
 
 
  1. pip install -i http://mirrors.aliyun.com/pypi/simple/ requests

附上國(guó)內(nèi)常見的鏡像源

  1. 阿里云 http://mirrors.aliyun.com/pypi/simple/
  2. 中國(guó)科技大學(xué) https://pypi.mirrors.ustc.edu.cn/simple/
  3. 豆瓣(douban) http://pypi.douban.com/simple/
  4. 清華大學(xué) https://pypi.tuna.tsinghua.edu.cn/simple/
  5. 中國(guó)科學(xué)技術(shù)大學(xué) http://pypi.mirrors.ustc.edu.cn/simple/

requests 官方文檔:https://requests.readthedocs.io/zh_CN/latest/

2.發(fā)送 get 請(qǐng)求

一個(gè)完整的 get 請(qǐng)求,應(yīng)該包括請(qǐng)求行(url)和請(qǐng)求頭(headers)、請(qǐng)求參數(shù)(params)。

 
 
 
 
  1. import  requests
  2. # get請(qǐng)求:url+params請(qǐng)求參數(shù)
  3. url="http://v.juhe.cn/laohuangli/d"
  4. # params  建議參數(shù)單獨(dú)拿出來,這樣寫
  5. p={"key":"abf91475fc19f66c2f1fe567edd75257",
  6. "date":"2014-09-11"}
  7. a=requests.get(url,params=p)  #發(fā)請(qǐng)求
  8. print(a.status_code)#狀態(tài)碼
  9. print(a.text)#raw 文本內(nèi)容
  10. print(a.headers)#dict
  11. print(a.headers['Date'])#key
  12. print(a.cookies)#RequestsCookieJar

3.如何判斷發(fā)送 get 請(qǐng)求要不要傳請(qǐng)求頭部?

先在 fiddler 中去掉請(qǐng)求頭部,用這個(gè)接口發(fā)下請(qǐng)求試試,如果是正常返回 200 就可以不傳頭部,如果在工具中發(fā)送請(qǐng)求后,提示 403 - Forbidden: Access is denied,那么就需要傳頭部。

請(qǐng)求頭中那么多參數(shù),哪些參數(shù)需要呢?

在工具中把請(qǐng)求頭中的參數(shù)挨個(gè)刪掉試試,不行的話就要加上了。

這個(gè)是看開發(fā)怎么實(shí)現(xiàn)的了,自己寫接口自動(dòng)化代碼的時(shí)候最好寫上請(qǐng)求頭,這樣規(guī)范一些。

4.傳入請(qǐng)求頭

頭部寫成字典格式,headers=headers,傳入請(qǐng)求頭。

有些響應(yīng)內(nèi)容是 gzip 壓縮的,text 只能打印文本內(nèi)容,用 content 是二進(jìn)制流。一般獲取返回值內(nèi)容,推薦用 content。

 
 
 
 
  1. import  requests
  2. url="https://www.baidu.com"
  3. # 構(gòu)建請(qǐng)求頭
  4. headers = {
  5.     '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'
  6. }
  7. r=requests.get(url,headers=headers)
  8. print(r.status_code)
  9. print(r.text)# html亂碼
  10. print(r.content.decode("utf-8"))  #decode解壓縮展示中文

5.權(quán)限被拒:403 - Forbidden: Access is denied

url 和請(qǐng)求參數(shù)都對(duì),卻沒權(quán)限??赡茉颍悍?wù)器識(shí)別到你是代碼請(qǐng)求的,防腳本機(jī)制。

解決辦法:需要身份驗(yàn)證,代碼中的請(qǐng)求頭部加上 cookies)。

三、response 的返回內(nèi)容還有其它更多信息

  • a.status_code 響應(yīng)狀態(tài)碼。
  • a.content 字節(jié)方式的響應(yīng)體,會(huì)自動(dòng)為你解碼 gzip 和 eflate 壓縮。
  • a.headers 以字典對(duì)象存儲(chǔ)服務(wù)器響應(yīng)頭,但是這個(gè)字典比較特殊,字典鍵不區(qū)分大小寫,若鍵不存在則返回 None。
  • a.json() Requests 中內(nèi)置的 JSON 解碼器 ,json 轉(zhuǎn)成 python 的字典了。
  • a.url 獲取 url。
  • a.encoding 編碼格式。
  • a.cookies 獲取返回的 cookie。
  • a.text字符串方式的響應(yīng)體,會(huì)自動(dòng)根據(jù)響應(yīng)頭部的字符編碼進(jìn)行解碼。
  • a.raise_for_status() 失敗請(qǐng)求(非 200 響應(yīng))拋出異常。

注:本篇文章寫的是用代碼發(fā)送簡(jiǎn)單的 get 請(qǐng)求,我有自己整理筆記的習(xí)慣,雖然網(wǎng)上這類的教程很多,但是坑也很多,自己寫的自己看放心一些。不喜勿噴,如有需要,自行抱走,后續(xù)會(huì)更新深入一些的文章。

本文轉(zhuǎn)載自微信公眾號(hào)「清菡軟件測(cè)試」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系清菡軟件測(cè)試公眾號(hào)。


本文題目:基礎(chǔ)篇Python發(fā)送Get請(qǐng)求之如何放請(qǐng)求頭、參數(shù)、獲取返回內(nèi)容
文章鏈接:http://www.5511xx.com/article/cdjpgje.html