国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

python中Requests請求的安裝方法與常見用法詳解

89542767 / 489人閱讀

  小編寫這篇文章的一個主要目的,主要是給大家去做一個科普,解釋關(guān)于python中的一些相關(guān)的用法實例,包括介紹了python Requests請求方法,還有一些具體用法的詳細(xì)解釋,具體內(nèi)容,下面小編給大家詳細(xì)的解答。


  一、requests


  request的說法網(wǎng)上有很多,簡單來說就是就是python里的很強(qiáng)大的類庫,可以幫助你發(fā)很多的網(wǎng)絡(luò)請求,比如get,post,put,delete等等,這里最常見的應(yīng)該就是get和post。


  二、requests安裝方式


  $pip install requests
  $easy_install requests


  三、說說常見的兩種請求,get和post


  1、get請求


  (1)參數(shù)直接跟在url后面,即url的“?”后面,以key=value&key=value的形式


  (2)由于get的參數(shù)是暴露在外面的,所以一般不傳什么敏感信息,經(jīng)常用于查詢等操作


  (3)由于參數(shù)是跟在url后面的,所以上傳的數(shù)據(jù)量不大


  2、post請求


  (1)參數(shù)可以寫在url后面,也可以寫在body里面


  (2)用body上傳請求數(shù)據(jù),上傳的數(shù)據(jù)量比get大


  (3)由于寫在body體里,相對安全


  post正文格式


  (1)form表單html提交數(shù)據(jù)的默認(rèn)格式


  Content-Type:application/x-www-form-urlencoded


  例如:username=admin&password123


  (2)multipart-form-data.復(fù)合表單可轉(zhuǎn)數(shù)據(jù)+文件


  (3)純文本格式raw,最常見的json.xml html js


  Content-Type:application/json.text/xml.text/html


  (4)binary.二進(jìn)制格式:只能上傳一個文件


  四、requests發(fā)送請求


  1、requests發(fā)送get請求


  url="http://www.search:9001/search/"
  param={"key":"你好"}
  res=requests.get(url=url,params=params)


  2、request發(fā)送post請求(body是json格式,如果還帶cookie)


  headers={'Content-Type':'application/json'}#必須有
  url="http://www.search:9001/search/"
  data={"key":"你好"}
  cookies={"uid":"1"}
  res=requests.post(url=url,headers=headers,data=data,cookies=cookies)


  3、request發(fā)送post請求(body是urlencoded格式)


  url="http://www.search:9001/search/"
  data={"key":"你好"}
  res=requests.post(url=url,headers=headers)


  4、request上傳文件


  def post_file_request(url,file_path):
  if os.path.exists(file_path):
  if url not in[None,""]:
  if url.startswith("http")or url.startswith("https"):
  files={'file':open(file_path,'rb')}
  res=requests.post(url,files=files,data=data)
  return{"code":0,"res":res}
  else:
  return{"code":1,"res":"url格式不正確"}
  else:
  return{"code":1,"res":"url不能為空"}
  else:
  return{"code":1,"res":"文件路徑不存在"}


  五、response


  request發(fā)送請求后,會返回一個response,response里有好多信息,我進(jìn)行了一下封裝,基本如下


  staticmethod
  def get_response_text(response):
  if response not in[None,""]:
  if isinstance(response,requests.models.Response):
  return{"code":0,"res":response.text.encode('utf-8').decode('unicode_escape')}#這種方式可以將url編碼轉(zhuǎn)成中文,返回響應(yīng)文本
  else:
  return{"code":1,"res":"response不合法"}
  else:
  return{"code":1,"res":"response對像不能為空"}
  staticmethod
  def get_response_status_code(response):
  if response not in[None,""]:
  if isinstance(response,requests.models.Response):
  return{"code":0,"res":response.status_code}#返回響應(yīng)狀態(tài)嗎
  else:
  return{"code":1,"res":"response不合法"}
  else:
  return{"code":1,"res":"response對像不能為空"}
  staticmethod
  def get_response_cookies(response):
  if response not in[None,""]:
  if isinstance(response,requests.models.Response):
  return{"code":0,"res":response.cookies}#返回cookies
  else:
  return{"code":1,"res":"response不合法"}
  else:
  return{"code":1,"res":"response對像不能為空"}
  staticmethod
  def get_response_headers(response):
  if response not in[None,""]:
  if isinstance(response,requests.models.Response):
  return{"code":0,"res":response.headers}#返回headers
  else:
  return{"code":1,"res":"response不合法"}
  else:
  return{"code":1,"res":"response對像不能為空"}
  staticmethod
  def get_response_encoding(response):
  if response not in[None,""]:
  if isinstance(response,requests.models.Response):
  return{"code":0,"res":response.encoding}#返回編碼格式
  else:
  return{"code":1,"res":"response不合法"}
  else:
  return{"code":1,"res":"response對像不能為空"}
  補(bǔ)充:requests中遇到問題
  獲取cookie
  #-*-coding:utf-8-*-
  #獲取cookie
  import requests
  import json
  url="https://www.baidu.com/"
  r=requests.get(url)
  #將RequestsCookieJar轉(zhuǎn)換成字典
  c=requests.utils.dict_from_cookiejar(r.cookies)
  print(r.cookies)
  print(c)
  for a in r.cookies:
  print(a.name,a.value)
  >>控制臺輸出:
  <RequestsCookieJar[<Cookie BDORZ=27315 for.baidu.com/>]>
  {'BDORZ':'27315'}
  BDORZ 27315
  發(fā)送Cookie
  #-*-coding:utf-8-*-
  #發(fā)送cookie到服務(wù)器
  import requests
  import json
  host="*****"
  endpoint="cookies"
  url=''.join([host,endpoint])
  #方法一:簡單發(fā)送
  #cookies={"aaa":"bbb"}
  #r=requests.get(url,cookies=cookies)
  #print r.text


  #方法二:復(fù)雜發(fā)送


  s=requests.session()
  c=requests.cookies.RequestsCookieJar()
  c.set('c-name','c-value',path='/xxx/uuu',domain='.test.com')
  s.cookies.update(c)


  綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家?guī)砀嗟膸椭?/p>

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/128248.html

相關(guān)文章

  • Python requests 安裝開發(fā)

    摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。 Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。Reque...

    XGBCCC 評論0 收藏0
  • Python requests 安裝開發(fā)

    摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。 Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。Reque...

    wuyangnju 評論0 收藏0
  • Python requests 安裝開發(fā)

    摘要:是用語言編寫客戶端庫,跟類似,基于,但比更加方便,可以節(jié)約我們大量的工作,完全滿足測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。 Requests 是用Python語言編寫HTTP客戶端庫,跟urllib、urllib2類似,基于 urllib,但比 urllib 更加方便,可以節(jié)約我們大量的工作,完全滿足 HTTP?測試需求,編寫爬蟲和測試服務(wù)器響應(yīng)數(shù)據(jù)時經(jīng)常會用到。Reque...

    2shou 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<