<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
request的說法網上有很多,簡單來說就是就是python裡的很強大的類庫,可以幫助你發很多的網路請求,比如get,post,put,delete等等,這裡最常見的應該就是get和post
$ pip install requests $ easy_install requests
(1)引數直接跟在url後面,即url的“ ?”後面,以key=value&key=value的形式
(2)由於get的引數是暴露在外面的,所以一般不傳什麼敏感資訊,經常用於查詢等操作
(3)由於引數是跟在url後面的,所以上傳的資料量不大
(1)引數可以寫在url後面,也可以寫在body裡面
(2)用body上傳請求資料,上傳的資料量比get大
(3)由於寫在body體裡,相對安全
post正文格式
(1)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 . 二進位制格式:只能上傳一個檔案
1、requests傳送get請求
url = "http://www.search:9001/search/" param = {"key":"你好"} res = requests.get(url=url, params=params)
2、request傳送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傳送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": "檔案路徑不存在"}
request傳送請求後,會返回一個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} #返回響應狀態嗎 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對像不能為空"}
獲取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
傳送Cookie
# -*- coding:utf-8 -*- #傳送cookie到伺服器 import requests import json host = "*****" endpoint = "cookies" url = ''.join([host,endpoint]) #方法一:簡單傳送 # cookies = {"aaa":"bbb"} # r = requests.get(url,cookies=cookies) # print r.text #方法二:複雜傳送 s = requests.session() c = requests.cookies.RequestsCookieJar() c.set('c-name','c-value',path='/xxx/uuu',domain='.test.com') s.cookies.update(c)
到此這篇關於python中Requests請求的安裝與常見用法的文章就介紹到這了,更多相關python中Requests請求內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45