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)url : 擬獲取頁面的url鏈結;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)
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的作用 作 傳送 絡請求,返回相應資...