*Requests庫(kù)的安裝
- 打開(kāi)cmd控制臺(tái)
- pip install requests
* requests庫(kù)的get()方法
r = requests.get(url)
r 是返回的一個(gè)Response對(duì)象
檢測(cè)是否安裝成功的方法
import requests
r=requests.get("http://www.baidu.com")
print(r.status_code)
要是返回的狀態(tài)碼是200镇饺,則說(shuō)明訪問(wèn)成功
Response對(duì)象的屬性
r.status_code ---> http請(qǐng)求的返回狀態(tài),200表示連接成功,404表示連接失敗
r.text --->http響應(yīng)內(nèi)容的字符串形式岗钩,即網(wǎng)絡(luò)頁(yè)面的內(nèi)容
r.encoding --->從HTTP header中獲取響應(yīng)內(nèi)容的編碼方式
r.appearent_encoding ---> 從內(nèi)容中分析出響應(yīng)內(nèi)容的編碼方式
* 爬取網(wǎng)頁(yè)的通用代碼框架
加入了網(wǎng)絡(luò)異常處理的部分,使代碼更加完善
Requests庫(kù)的異常有以下幾個(gè)
requests.ConnectionError --->網(wǎng)絡(luò)連接異常,如DNS查詢失敗,拒絕連接等
requests.HTTPError --->HTTP錯(cuò)誤異常
requests.URLRequired --->URL缺失異常
requests.TooManyRedirects --->超過(guò)最大重定向次數(shù)宿亡,產(chǎn)生定向異常
requests.ConnectTimeout --->連接遠(yuǎn)程服務(wù)器超時(shí)異常
requests.Timeout --->請(qǐng)求URL超時(shí),產(chǎn)生超時(shí)異常
一個(gè)常用的方法:r.raise_for_status() --->如果狀態(tài)碼不是200纳令,則產(chǎn)生requests.HTTPError異常
代碼框架如下:
def getHTMLText(url):
try:
r = requests.get(url,timeout = 30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.textexcept:
return "產(chǎn)生異常"
''' python
'''
*HTTP協(xié)議(超文本傳輸協(xié)議)
http協(xié)議采用url作為定位網(wǎng)絡(luò)資源的標(biāo)識(shí)
URL格式:http://host[:port][path]
host: 合法的Internet主機(jī)域名或者IP地址
port: 端口號(hào)挽荠,缺省為80
path: 請(qǐng)求資源的路徑
requests庫(kù)的七個(gè)主要方法.png
HTTP協(xié)議對(duì)資源的操作.png
注:理解PATCH與PUT的區(qū)別
*Requests庫(kù)主要方法的解析
-
request方法
requests.request(method,url,**kwargs)
method:請(qǐng)求方式,對(duì)應(yīng)get/put/post等7鐘
url:要獲取的頁(yè)面的url鏈接
**kwargs:控制訪問(wèn)的參數(shù)泊碑,共13個(gè)
**kwargs參數(shù)解析(訪問(wèn)控制參數(shù)坤按,均為可選參數(shù))
params:字典或字節(jié)序列,作為參數(shù)增加到url中
params.png
data:字典馒过,字節(jié)序列或文件對(duì)象臭脓,作為Request的內(nèi)容
data.png
json:JSON格式的數(shù)據(jù),作為Request的內(nèi)容
json.png
headers:字典腹忽,HTTP定制頭
headers.png
cookies: 字典或CookieJar
auth: 元組,支持HTTP認(rèn)證功能
files:字典類型来累,傳輸文件
files.png
timeout:設(shè)定超時(shí)實(shí)踐,秒為單位
timeout.png
proxies:字典類型窘奏,設(shè)定訪問(wèn)代理服務(wù)器嘹锁,可以增加登錄認(rèn)證
proxies.png
allow_redirects:True/False,默認(rèn)為T(mén)rue,重定向開(kāi)關(guān)
stream:True/False着裹,默認(rèn)為T(mén)rue领猾,獲取內(nèi)容立即下載開(kāi)關(guān)
verify:True/False,默認(rèn)為T(mén)rue,認(rèn)證SSL證書(shū)開(kāi)關(guān)
cert:本地SSL證書(shū)路徑