雖然Python有內置的urllib
庫,可以實現網絡的請求,但是我並不推薦。因爲urllib
在很多時候使用起來不方便,比如加一個代理,處理Cookie
時API都很繁瑣,再比如發送一個POST
請求也很麻煩。
而Requests
就相當於urllib
的升級版本,簡化了urllib
的使用方法。有了Requests
,我們可以用幾句代碼實現代理的設置,Cookie
的設置,非常方便。下面我就給大家整理了Requests
庫的使用方法和細節。詳細可以參考Requests
官方文檔。
什麼是Requests?
Requests
是Python
語言編寫,基於urllib3
,採用Apache2 Licensed
開源協議的HTTP庫。
它比urllib
更加方便,可以節約我們大量的工作,完全滿足HTTP
測試需求。是Python
實現的簡單易用的HTTP
庫。
安裝也很簡單:pip install requests
Requests的語法操作
1.實例引入
|
運行結果:
|
可以看到,我們非常方便的就獲取到了Cookies
.
2.各種請求方式
|
官方文檔裏提供的這個網址足夠我們測試這些請求方式了。
請求
1.基本GET請求
|
這個我們前面有使用過,也是最常用的方法。運行成功就可以看到網頁的源碼了。
2.帶參數的GET請求
|
傳入參數只需要我們把數據生成一個字典,然後調用params
參數,賦值給他就可以,是不是很方便。
3.解析json
|
運行結果:
可以看出Requests
的jaon
解析和json
的loads
方法解析出來的結果是完全一樣的。所以Requests
可以很方便的解析json
數據。
4.獲取二進制數據
|
運行成功我們可以看到content
方法獲取的圖片頁面源碼是二進制數據,而text
獲取的則是字符串代碼。顯然獲取圖片這種二進制數據需要使用content
方法。
|
這樣我們就保存了圖片,我們可以在文件夾下看到這張圖片。
5.添加headers
|
有些網頁如果我們直接去請求的話,他會查看請求的對象是不是瀏覽器,如果沒有瀏覽器信息就會禁止我們爬蟲的訪問,這個時候我們就要給爬蟲加一個headers
,加一個瀏覽器的user-agent
信息。這樣我們就可以正常訪問了。如果有的夥伴不知道怎麼得到User-Agent
,可以打開瀏覽器的審查元素,找到network
,隨便點擊一個鏈接就可以看到User-Agent
的信息了。
6.基本POST請求
|
一個POST
必然是要有一個Form Data
的表單提交的,我們只要把信息傳給data
參數就可以了。一個POST
請求只需要調用post
方法,是不是特別方便呢。如果不覺得方便的話,可以去參考urllib
的使用方法。
響應
1.response屬性
|
獲取這些信息只需要簡單的調用就可以實現了。
2.狀態碼判斷
|
如果發送了一個錯誤請求(一個4XX客戶端錯誤,或者5XX服務器錯誤響應),我們可以通過 Response.raise_for_status()
來拋出異常:
|
好了,這篇文章我們瞭解了Requests
庫的基本語法操作,相信大家對Requests
庫的請求和響應已經很清楚了,大家完全可以抓取一些網頁了。
紙上得來終覺淺,絕知此事要躬行,大家加油!