requests 庫的常用方法
寫過Python 爬蟲的一定都多多少少用過 requests 這個庫,requests 是一個基於 urllib的第三方庫,相比起來 requests 非常好用。requests 有中文文檔,但是對於剛入門的朋友可能看起來沒那麼容易。 這一篇文章就盡量說點人話。
1.安裝 requests 庫
打開cmd命令行,輸入命令
pip install requests
2.get 方法
get請求是最常見的請求方式。
這裡得到一個Response對象,這裡說幾個常用的屬性。
status_code狀態碼
狀態碼是一個int類型。
下面是比較常見的狀態碼。
200表示請求正常。
301表示重定向,也就是跳轉到另一個地址。
403表示請求被拒絕。
404表示請求的地址不存在。
500表示伺服器發生了不可預料的錯誤。
text文本
得到的文本是一個字元串類型,可以發現,裡面出現亂碼,但是網頁上並沒有亂碼,那是因為這裡的編碼出了問題。這就得說一下encoding屬性。
encoding聲明編碼
可以看到,亂碼已經正常顯示了。比較常用的編碼規則有utf-8,gbk這兩種。那我們怎麼知道某個網站的編碼規則呢?打開網頁源代碼,找到charset這個參數的值。
content二進位文件
是一個bytes類型,在抓取圖片,視頻等文件類型的時候,都是獲取其二進位文件,再寫入本地。實際上,文本信息也可以通過這種方法獲得。
json解析json數據
json屬性,可以直接解析json數據為python裡面的字典類型,相當於json庫裡面的json.loads( )方法,使用這個屬性的前提是,必須保證獲取的是json格式的文件,不然會報錯的。
3.post 方法
post請求與get請求的最大不同就是需要傳值,可以先構造一個字典,通過data參數來傳值。
http://httpbin.org/
這個網站可以收藏一下,這個網站是用來做測試用的,寫程序時經常測試用。
總結
這一篇是requests庫的入門篇,掌握了這些,已經能寫很多簡單的爬蟲了。在後面我會再寫一個進階篇,說一說requests比較高級的用法,比如說構造headers,會話維持,證書驗證,代理設置等知識。
TAG:python爬蟲知識 |