<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
記得我剛學python-requests庫的時候總會有點暈,於是我做了以下關於requests庫的知識點整理,方便初學者可以更好的瞭解requests庫。如果有補充或錯誤,或者不懂的地方,可以評論區留言。
Requests是Python一個很實用的HTTP使用者端,完全滿足如今網路爬蟲的需求
urllib庫和requests庫功能類似,但requests庫功能更多更實用
pip命令安裝(方法一)
原始碼安裝(方法二)
測試
序號 | 方法 | 描述 |
1 | requests.request(url) | 構造一個請求,支援以下各種方法 |
2 | requests.get() | 傳送一個Get請求 |
3 | requests.post() | 傳送一個Post請求 |
4 | requests.head() | 獲取HTML的頭部資訊 |
5 | requests.put() | 傳送Put請求 |
6 | requests.patch() | 提交區域性修改的請求 |
7 | requests.delete() | 提交刪除請求 |
最常用的方法為get()和post()分別用於傳送Get請求和Post請求
序號 | 屬性或方法 | 描述 |
1 | response.status_code | 響應狀態碼 |
2 | response.content | 把response物件轉換為二進位制資料 |
3 | response.text | 把response物件轉換為字串資料 |
4 | response.encoding | 定義response物件的編碼 |
5 | response.cookie | 獲取請求後的cookie |
6 | response.url | 獲取請求網址 |
7 | response.json() | 內建的JSON解碼器 |
8 | Response.headers | 以字典物件儲存伺服器響應頭,字典鍵不區分大小寫 |
# 不帶引數的get請求 import requests url='http://www.baidu.com' resp = requests.get(url) # 設定響應的經編碼格式 resp.encoding='utf-8' cookie=resp.cookies # 獲取請求後的cookie資訊 headers=resp.headers print('響應狀態碼:', resp.status_code) print('請求後的cookie:', cookie) print('獲取請求的網址:', resp.url) print('響應頭:', headers) print('響應內容', resp.text) ----------------------------------以下為輸出結果---------------------------------- ''' 響應狀態碼: 200 請求後的cookie: <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]> 獲取請求的網址: http://www.baidu.com/ 響應頭: {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Fri, 23 Apr 2021 00:10:35 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:28:16 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'} 響應內容 <!DOCTYPE html> <!--STATUS OK--><html> <head><meta http-equiv=content-type......... '''
# 帶引數的get請求 import requests url = 'https://tieba.baidu.com/f?' params = {'kw':'大學吧', 'pn':'3'} headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 6.1; WOW64)'} # 開始請求 html = requests.get(url=url, params=params, headers=headers).text print(html)
我們可以通過timeout屬性設定超時時間,一旦超過這個時間還沒獲得響應內容,就會提示錯誤。
import requests requests.get('http://github.com', timeout=0.001) ---------------------以下為輸出結果(報錯)--------------------- Traceback (most recent call last): File "<stdin>", line 1, in <module> requests.exceptions.Timeout: HTTPConnectionPool(host='github.com', port=80): Request timed out. (timeout=0.001)
5.2.4.1 免費代理IP
import requests url = 'http://httpbin.org/get' headers = {'User-Agent':'Mozilla/5.0'} # 定義代理,再代理IP網站中查詢免費代理IP proxies = { 'http':'http://112.85.164.220:9999', 'https':'https://112.85.164.220:9999' } html = requests.get(url=url,proxies=proxies,headers=headers,timeout=5).text print(html)
5.2.4.1 私密代理和獨享代理
語法格式:proxies = { '協定':'協定://使用者名稱:密碼@IP:埠號'}
範例:
# 獲取json資料 # 案例:百度獲取宮崎駿動漫圖片 # 滑動頁面,URL沒變化,F12中的檔案越來越多,說明這是動態網頁 # 選擇XHR中的一個,複製其Request URL,貼上給url import requests url='https://image.baidu.com/search/acjson?tn=resultjson_com&logid=10167214135414424439&ipn=rj&ct=201326592&is=&fp=result&queryWord=%E5%AE%AB%E5%B4%8E%E9%AA%8F%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&cl=2&lm=-1&ie=utf-8&oe=utf-8&adpicid=&st=&z=&ic=&hd=&latest=©right=&word=%E5%AE%AB%E5%B4%8E%E9%AA%8F%E5%8A%A8%E6%BC%AB%E5%9B%BE%E7%89%87&s=&se=&tab=&width=&height=&face=&istype=&qc=&nc=&fr=&expermode=&force=&pn=30&rn=30&gsm=1e&1619134335166=' resp=requests.get(url) json_data=resp.json() print(json_data)
一般來說,對於非文字請求,可以以位元組形式存取響應正文。
# 獲取二進位制資料 # 案例:儲存百度圖片 import requests url='https://www.baidu.com/img/bd_logo1.png' resp=requests.get(url) # 儲存 with open('logo.png','wb') as file: # resp.content:把response物件轉換為二進位制資料 file.write(resp.content)
import requests url='https://www.xslou.com/login.php' data={'username':'18600605736', 'password':'57365736', 'action':'login'} resp = requests.post(url,data) resp.encoding='gb2312' print('響應狀態碼:', resp.status_code) # 200 print('響應內容', resp.text) # <html>......</html>
import requests url='https://www.xslou.com/login.php' data={'username':'18600605736', 'password':'57365736', 'action':'login'} # 使用session傳送請求 session = requests.session() resp=session.post(url,data=data) # 使用session傳送post請求 resp.encoding='gb2312' # print( resp.text) # <html>..<title>登入成功</title>....</html>
到此這篇關於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