Python爬蟲之Requests庫基本使用詳解
1、Requests簡介和下載
Requests 庫簡介
Requests 庫是在 urllib 模塊的基礎(chǔ)上開發(fā)而來,繼承了urllib.request的所有特性。
Requests 采用了 Apache2 Licensed(一種開源協(xié)議)的 HTTP 庫,支持HTTP連接保持和連接池,支持使用cookie保持會(huì)話,支持文件上傳,支持自動(dòng)確定響應(yīng)內(nèi)容的編碼,支持國際化的URL和POST數(shù)據(jù)自動(dòng)編碼。
與urllib.request 相比,Requests 在使用時(shí)更加簡潔方便、快捷,所以 Requests 庫在編寫爬蟲程序時(shí)使用較多。
官方文檔對(duì) Requests 庫的介紹:比較生動(dòng)形象
Requests 唯一的一個(gè)非轉(zhuǎn)基因的 Python HTTP 庫,人類可以安全享用。
警告:非專業(yè)使用其他 HTTP 庫會(huì)導(dǎo)致危險(xiǎn)的副作用,包括:安全缺陷癥、冗余代碼癥、重新發(fā)明輪子癥、啃文檔癥、抑郁、頭疼、
甚至死亡。
Requests的下載安裝
1、requests庫安裝位置:Python安裝目錄的Scripts文件夾下
2、安裝命令:pip install requests-i https://pypi.douban.com/simple,如下圖則安裝成功:

2、Requests 庫基本使用
Requests 響應(yīng)對(duì)象類型
這里分別使用 requests 和 urllib.request 向網(wǎng)站發(fā)起get請(qǐng)求,然后打印響應(yīng)對(duì)象的型:
# 導(dǎo)入模塊 import urllib.request import requests url = "https://www.baidu.com" # requests 和 urllib.request 響應(yīng)對(duì)象類型對(duì)比 # equests 發(fā)送get請(qǐng)求 response_s = requests.get(url=url) # 打印響應(yīng)對(duì)象:Response print(type(response_s)) # urllib.request發(fā)送get請(qǐng)求 response = urllib.request.urlopen(url=url) # 打印響應(yīng)對(duì)象:HTTPResponse print(type(response))
執(zhí)行結(jié)果:可以看到,requests 的響應(yīng)對(duì)象類型就是 Response,而urllib.request 的響應(yīng)對(duì)象類型是 HTTPResponse
<class 'requests.models.Response'>
<class 'http.client.HTTPResponse'>
Requests 六個(gè)屬性
requests 的響應(yīng)對(duì)象類型是 Response,該Response對(duì)象具有以下幾個(gè)常用屬性:
| 常用屬性 | 說明 |
| encoding | 返回或者指定響應(yīng)對(duì)象的字符編碼 |
| status_code | 返回響應(yīng)對(duì)象的HTTP響應(yīng)碼 |
| url | 返回請(qǐng)求的 url 地址 |
| headers | 返回請(qǐng)求頭信息 |
| cookies | 返回 cookies 信息 |
| text | 以字符串形式返回網(wǎng)頁源碼 |
| content | 以二進(jìn)制數(shù)據(jù)形式返回網(wǎng)頁源碼,在保存下載圖片時(shí)可以使用該屬性 |
Response對(duì)象屬性使用實(shí)例
代碼實(shí)例:
import urllib.request import requests url = "https://www.baidu.com" response_s = requests.get(url=url) # 打印響應(yīng)對(duì)象字符編碼 print(response_s.encoding) # 指定響應(yīng)對(duì)象字符編碼為utf-8 response_s.encoding="utf-8" # 打印狀態(tài)碼 print(response_s.status_code) # 打印請(qǐng)求url print(response_s.url) # 打印頭信息 print(response_s.headers) # 打印cookie信息 print(response_s.cookies) # 以字符串形式打印網(wǎng)頁源碼 print(response_s.text) # 以二進(jìn)制數(shù)據(jù)形式打印網(wǎng)頁源碼 print(response_s.content)
執(zhí)行結(jié)果:(網(wǎng)頁源碼省略)
# 響應(yīng)對(duì)象字符編碼
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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)從ftp上下載文件的實(shí)例方法
在本篇文章里小編給大家整理了關(guān)于python實(shí)現(xiàn)從ftp上下載文件的實(shí)例方法,需要的朋友們可以參考下。2020-07-07
代碼講解Python對(duì)Windows服務(wù)進(jìn)行監(jiān)控
本篇文章給大家分享了通過Python對(duì)Windows服務(wù)進(jìn)行監(jiān)控的實(shí)例代碼,對(duì)此有興趣的朋友可以學(xué)習(xí)參考下。2018-02-02
python selenium 無界面瀏覽器的實(shí)現(xiàn)
有時(shí)我們不想讓瀏覽器窗口跳出來,而是想在后臺(tái)進(jìn)行操作,這就需要用到無界面瀏覽器,本文主要介紹了python selenium 無界面瀏覽器的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10
python使用openCV遍歷文件夾里所有視頻文件并保存成圖片
這篇文章主要介紹了python使用openCV遍歷文件夾里所有視頻文件并保存成圖片,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2020-01-01
Python創(chuàng)建SQL數(shù)據(jù)庫流程逐步講解
會(huì)寫SQL很重要,能高效地查詢數(shù)據(jù)庫被認(rèn)為是數(shù)據(jù)分析師/科學(xué)家最基本的技能之一。SQL不僅重要,而且非常常用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧2022-09-09

