爬蟲request庫規則與例項

2022-08-28 18:45:06 字數 4030 閱讀 5890

request庫的7個主要方法:

requests.request(method,url,**kwargs)

​ r = requests.request('get',url,**kwargs)

​ r = requests.request('head',url,**kwargs)

​ ......

​ params : 字典或位元組序列,作為引數增加到url中;

​ data : 字典、位元組序列或檔案物件,作為request的內容

​ json : json格式的資料,作為request的內容;

​ headers :字典,http定製頭;

​ cookies :字典或cookiejar、request中的cookie;

​ auth:元組,支援http認證功能;

​ files : 字典型別,傳輸檔案;

​ timeout :設定超時時間,秒為單位;

​ proxies : 字典型別,設定訪問**伺服器,可以增加登入認證;

​ allow_redirects : true/false,預設為true,重定向開關;

​ verify : true/false,預設為true,認證ssl證書開關;

​ cert : 本地ssl證書路徑;

1 requests.get(url,params = none,**kwargs)

23 requests.head(url,**kwargs)

45 requests.post(url,data = none,params = none,**kwargs)

67 requests.put(url,data = none,**kwargs)

89 requests.patch(url,data = none,**kwargs)

1011 requests.delete(url,**kwargs)

1213 requests.get(url,params = none,**kwargs)

url : 擬獲取頁面的url鏈結;

​ params :url中的額外引數,字典或位元組流格式,可選;

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

r = requests.get(url)

response物件包含爬蟲返回的內容 

response物件的屬性:

理解request庫的異常:

r.raise_for_status() 如果不是200,產生異常 requests.httperror

http(hypertext transfer protocol)協議:超文字傳輸協議。

​ http是乙個基於「請求與響應」模式的、無狀態的應用層協議;

​ http協議採用url作為定位網路資源的標識,url格式如下:

​ host : 合法的internet主機網域名稱或ip位址;

​ port : 埠號,預設埠為80;

​ path : 請求資源的路徑。

http協議對資源的操作:

通過url和命令管理資源,操作無獨立狀態,網路通道及伺服器成為了黑盒子。

理解patch和put的區別:

假設url位置有一組資料userid、username等20個字段。

需求:使用者修改了username,其他不變。

​ 採用patch,僅向url提交username的區域性更新請求;

​ 採用put,必須將所有20個字段一併提交到url,未提交欄位被刪除。

patch最主要的好處:節省網路頻寬。

http協議與requests庫:

例項1:京東商品頁面的爬取。

**:全**:

限制是否能爬蟲的兩種方式:robots協議、判斷http的頭是否為瀏覽器;

例項2:亞馬遜商品頁面的爬取。

**:全**:

>>> import requests

>>> kv =

>>> r = requests.get("",params = kv)

>>> r.status_code

200>>> r.request.url

'?wd=python'

>>> len(r.text)

312484

全**:

print("爬取失敗")

例項4:360瀏覽器網頁爬取。

>>> import requests

>>> kv =

>>> r = requests.get("",params = kv)

>>> r.status_code

200>>> r.request.url

''>>> len(r.text)

275843

全**:

#360 code.py

import requests

keyword = "python"

try:

kv =

r = requests.get("",params = kv)

print(r.request.url)

r.raise_for_status()

print(len(r.text))

except:

print("爬取失敗")

**:

#picture code.py

import requests

import os

url = ""

#root = "c:/users/e5-573g/desktop/2018寒假/python/爬蟲/圖"   #正常執行,不會出錯。絕對路徑用/

#root = "c:\users\e5-573g\desktop\2018寒假\python\爬蟲\圖"   出現unicode error 錯誤,\轉義的放式

root = r"c:\users\e5-573g\desktop\2018寒假\python\爬蟲\圖"   #正常執行,不會出錯。r\不需要轉義

path = root + url.split('/')[-1]

try:

if not os.path.exists(root):

os.mkdir(root)

if not os.path.exists(path):

r = requests.get(url)

with open(path,'wb') as f:

f.write(r.content)

f.close

print("檔案儲存成功")

else:

print("檔案已存在")

except:

print("爬取失敗")

執行結果:

爬蟲中request庫的爬取例項

首先,需要安裝requests庫 安裝requests庫 管理員方式執行cmd,輸入pip install requests即可 亞馬遜會檢測 import requests url try kv r requests.get url,headers kv r.raise for status pr...

python爬蟲利器 request庫

request庫比urllib2庫更為高階,因為其功能更強大,更易於使用。使用該庫可以十分方便我們的抓取。基本請求 r requests.get r requests.post r requests.put r requests.delete r requests.head r requests.o...

爬蟲request庫簡單使用

為什麼要學習requests,而不是urllib requests的底層實現就是urllib requests在python2和python3通用,法完全 樣 requests簡單易 requests能夠 動幫助我們解壓 gzip壓縮的 網頁內容 requests的作用 作 傳送 絡請求,返回相應資...