Python爬蟲之Requests庫基本使用詳解
1、Requests簡介和下載
Requests 庫簡介
Requests 庫是在 urllib 模塊的基礎(chǔ)上開發(fā)而來,繼承了urllib.request的所有特性。
Requests 采用了 Apache2 Licensed(一種開源協(xié)議)的 HTTP 庫,支持HTTP連接保持和連接池,支持使用cookie保持會話,支持文件上傳,支持自動確定響應(yīng)內(nèi)容的編碼,支持國際化的URL和POST數(shù)據(jù)自動編碼。
與urllib.request 相比,Requests 在使用時更加簡潔方便、快捷,所以 Requests 庫在編寫爬蟲程序時使用較多。
官方文檔對 Requests 庫的介紹:比較生動形象
Requests 唯一的一個非轉(zhuǎn)基因的 Python HTTP 庫,人類可以安全享用。
警告:非專業(yè)使用其他 HTTP 庫會導(dǎo)致危險的副作用,包括:安全缺陷癥、冗余代碼癥、重新發(fā)明輪子癥、啃文檔癥、抑郁、頭疼、
甚至死亡。
Requests的下載安裝
1、requests庫安裝位置:Python安裝目錄的Scripts文件夾下
2、安裝命令:pip install requests-i https://pypi.douban.com/simple,如下圖則安裝成功:
2、Requests 庫基本使用
Requests 響應(yīng)對象類型
這里分別使用 requests 和 urllib.request 向網(wǎng)站發(fā)起get請求,然后打印響應(yīng)對象的型:
# 導(dǎo)入模塊 import urllib.request import requests url = "https://www.baidu.com" # requests 和 urllib.request 響應(yīng)對象類型對比 # equests 發(fā)送get請求 response_s = requests.get(url=url) # 打印響應(yīng)對象:Response print(type(response_s)) # urllib.request發(fā)送get請求 response = urllib.request.urlopen(url=url) # 打印響應(yīng)對象:HTTPResponse print(type(response))
執(zhí)行結(jié)果:可以看到,requests 的響應(yīng)對象類型就是 Response,而urllib.request 的響應(yīng)對象類型是 HTTPResponse
<class 'requests.models.Response'>
<class 'http.client.HTTPResponse'>
Requests 六個屬性
requests 的響應(yīng)對象類型是 Response,該Response對象具有以下幾個常用屬性:
常用屬性 | 說明 |
encoding | 返回或者指定響應(yīng)對象的字符編碼 |
status_code | 返回響應(yīng)對象的HTTP響應(yīng)碼 |
url | 返回請求的 url 地址 |
headers | 返回請求頭信息 |
cookies | 返回 cookies 信息 |
text | 以字符串形式返回網(wǎng)頁源碼 |
content | 以二進制數(shù)據(jù)形式返回網(wǎng)頁源碼,在保存下載圖片時可以使用該屬性 |
Response對象屬性使用實例
代碼實例:
import urllib.request import requests url = "https://www.baidu.com" response_s = requests.get(url=url) # 打印響應(yīng)對象字符編碼 print(response_s.encoding) # 指定響應(yīng)對象字符編碼為utf-8 response_s.encoding="utf-8" # 打印狀態(tài)碼 print(response_s.status_code) # 打印請求url print(response_s.url) # 打印頭信息 print(response_s.headers) # 打印cookie信息 print(response_s.cookies) # 以字符串形式打印網(wǎng)頁源碼 print(response_s.text) # 以二進制數(shù)據(jù)形式打印網(wǎng)頁源碼 print(response_s.content)
執(zhí)行結(jié)果:(網(wǎng)頁源碼省略)
# 響應(yīng)對象字符編碼 ISO-8859-1 # 狀態(tài)碼 200 # url 地址 https://www.baidu.com/ # 響應(yīng)頭信息 {'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'keep-alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Fri, 19 Aug 2022 01:27:47 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:23:55 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-Cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'} # cookie信息 <RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
到此這篇關(guān)于Python爬蟲之Requests庫基本使用詳解的文章就介紹到這了,更多相關(guān)Python的Requests庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python實現(xiàn)不一樣的猜數(shù)字游戲的示例代碼
大家知道“猜數(shù)字”這個游戲嗎?顧名思義就是一個人想一個數(shù)字,另一個人猜。本文就來用Python實現(xiàn)一款不一樣的猜數(shù)字游戲,感興趣的可以了解一下2023-02-02Python實現(xiàn)設(shè)計模式之單例模式詳解
這篇文章主要介紹了Python實現(xiàn)設(shè)計模式之單例模式詳解,設(shè)計模式是指軟件設(shè)計問題的推薦方案,設(shè)計模式一般是描述如何組織代碼和使用最佳實踐來解決常見的設(shè)計問題,需謹(jǐn)記一點:設(shè)計模式是高層次的方案,并不關(guān)注具體的實現(xiàn)細(xì)節(jié),比如算法和數(shù)據(jù)結(jié)構(gòu),需要的朋友可以參考下2023-09-09java中的控制結(jié)構(gòu)(if,循環(huán))詳解
這篇文章簡單地介紹了java中的控制結(jié)構(gòu)(if,循環(huán))文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,下面我們來學(xué)習(xí)下吧2019-06-06PyCharm如何設(shè)置Console控制臺輸出自動換行
這篇文章主要介紹了PyCharm如何設(shè)置Console控制臺輸出自動換行問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-05-05利用Python制作動態(tài)排名圖的實現(xiàn)代碼
這篇文章主要介紹了利用Python制作動態(tài)排名圖的實現(xiàn)代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-04-04python入門課程第四講之內(nèi)置數(shù)據(jù)類型有哪些
這篇文章主要介紹了python入門課程第四講之內(nèi)置數(shù)據(jù)類型有哪些?本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09