Python網頁爬蟲之Requests庫入門

2021-10-10 04:51:57 字數 2773 閱讀 3760

文字工具類

整合工具類

(1)get()方法

get()函式方法可以請求獲取request-uri所標識的資源。

r= requests.get(url,params=

none

,**kwargs)

url:獲取頁面的鏈結

params=none:url中的額外引數,字典或位元組流格式,可以選擇

**kwargs:12個控制訪問的引數

其中:

例子:不指定編碼格式:

import requests

r = requests.get(

"")print

(r.status_code)

#請求的狀態碼,若為200則訪問成功,404表示失敗

print

(type

(r))

#列印r的型別

print

(r.encoding)

#r首選的編碼格式,也是從頭部資訊猜測的

print

#候選的編碼格式,根據內容確定出來的編碼形式。若首選編碼格式全是亂碼,則使用候選編碼形式

#r.encoding='utf-8' #設定編碼形式

print

(r.headers)

#列印網頁的頭部資訊

print

(r.text)

#列印網頁內容

結果:

發現全是亂碼,沒有中文。

而當我們分析內容後再指定編碼格式後,就可看到中文:

(2)網頁爬取的通用**框架

網頁爬取常用的就是requests庫中的get()函式方法,但是網路連線有風險,所以在進行爬取網頁資訊時需要先學會進行異常處理。

加入異常處理後的網頁爬取通用**框架為:

import requests

defgethtmltext

(url)

:#函式定義

try:

#判斷是否存在異常,並對異常進行處理

r = requests.get(url,timeout=30)

r.raise_for_status(

)#如果轉態不是200,引發httperror異常

return r.text

except

:return

"異常處理"

if __name__ ==

'__main__'

: url=

""print

(gethtmltext(url)

)#請求的狀態碼,若為200則訪問成功,404表示失敗

結果:

(3)http協議及requests庫方法

首先需要說明的,兩者的方法是一致的,為了更好的理解這些方法,先來了解一下http協議:

http-hypertexttransferprotocol(超文字傳輸協議),是乙個基於「請求與響應」模式的、無狀態(第二次請求與第一次請求沒有關係)的應用層協議,常基於tcp的連線方式,常採用url作為定位網路資源的標識。

需要注意的是,當我們需要向伺服器更新我們的資料時,patch方法可以進行區域性資訊提交並更新,節省網路頻寬;而put方法必須提交全部資訊,同時會刪除原來存在的字段。

(3.1)request()方法

例子:

pxs=

r=requests.request(

'get'

,'',proxies=pxs)

#可以隱藏使用者爬取網頁資訊原來的ip

print

(r.headers)

(3.2)get()方法

(3.3)head()方法

(3.4)post()方法

(3.5)put()方法

(3.6)patch()方法

(3.7)delete()方法

以上的方法,我們最常使用的是get()方法,因為向伺服器提供資源時會存在安全性問題,

python學習筆記 flask之request

from flask import request coding utf 8 from flask import flask,request def index 訪問上面定義的路徑就是訪問此方法 請求行 print request.method request.method 獲取請求方法 print...

python網頁爬蟲之天氣查詢

這是用python寫的天氣查詢 可用。這裡用的是和風天氣的介面 參考 我用的城市資料 將城市資料存放本地 jsons import pickle pickle file open city data.pkl wb pickle.dump jsons,pickle file pickle file.c...

python爬蟲網頁解析之lxml模組

windows系統下的安裝 方法一 pip3 install lxml pip3 install lxml 4.2.1 cp36 cp36m win amd64.whl 檔案所在的路徑 linux下安裝 方法一 pip3 install lxml 方法二 yum install y epel rel...