亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

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

89542767 / 537人閱讀

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


  一、requests


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


  二、requests安裝方式


  $pip install requests
  $easy_install requests


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


  1、get請求


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


 ?。?)由于get的參數是暴露在外面的,所以一般不傳什么敏感信息,經常用于查詢等操作


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


  2、post請求


 ?。?)參數可以寫在url后面,也可以寫在body里面


 ?。?)用body上傳請求數據,上傳的數據量比get大


 ?。?)由于寫在body體里,相對安全


  post正文格式


 ?。?)form表單html提交數據的默認格式


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


  例如:username=admin&password123


  (2)multipart-form-data.復合表單可轉數據+文件


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


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


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


  四、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里有好多信息,我進行了一下封裝,基本如下


  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編碼轉成中文,返回響應文本
  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}#返回響應狀態(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對像不能為空"}
  補充:requests中遇到問題
  獲取cookie
  #-*-coding:utf-8-*-
  #獲取cookie
  import requests
  import json
  url="https://www.baidu.com/"
  r=requests.get(url)
  #將RequestsCookieJar轉換成字典
  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到服務器
  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ā)送


  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>

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

轉載請注明本文地址:http://www.ezyhdfw.cn/yun/128248.html

相關文章

  • Python requests 安裝開發(fā)

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

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

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

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

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

    2shou 評論0 收藏0

發(fā)表評論

0條評論

89542767

|高級講師

TA的文章

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