Python爬蟲小白入門(二)requests庫
轉自:https://www.cnblogs.com/Albert-Lee/p/6230337.html
一、前言
為什麼要先說Requests庫呢,因為這是個功能很強大的網路請求庫,可以實現跟瀏覽器一樣傳送各種HTTP請求來獲取網站的資料。網路上的模組、庫、包指的都是同一種東西,所以後文中可能會在不同地方使用不同稱謂,不要迷惑哦。
結合一個例項來講解吧。我的一個設計師小夥伴常去一些設計類網站收集素材,其中有個網站Unsplash裡面美圖特別多,所以想要把裡面的圖片都儲存下來,這樣咱們的小爬蟲就登場了。說幹就幹,趕緊開始吧。
先來準備環境
二、執行環境
- 系統版本
我使用的是Windows10。
好多小夥伴使用的是Mac,配置上基本相同。由於我多年混跡於微軟的開發平臺,經常使用Visual Studio、SQL Server啥的,用Windows用習慣了(其實主要是因為Qiong窮!)。所以這個教程我就以Windows系統為例了。
Python版本
我電腦裝了好多個Python版本(學一個裝一個。。。),不過推薦使用Anaconda這個科學計算版本,主要是因為它自帶一個包管理工具,可以解決有些包安裝錯誤的問題。去Anaconda官網,選擇Python3.5版本,然後下載安裝。IDE
我使用的是PyCharm,是專門為Python開發的IDE。這是JetBrians的產品,
三、requests 庫的安裝
使用Anaconda 版本的得小夥伴兒:用管理員許可權執行cmd命令視窗,然後輸入
conda install requests
看動圖:
直接使用Python3.5的小夥伴兒輸入這個命令:
pip install requests
如果你機器上存在多個Python版本,要給Python3.5的版本安裝requests庫,需要輸入以下命令:
py -3 -m pip install requests
好啦,requests庫安裝完畢,接下來我們會在實際例子中演示它的使用。想要深入瞭解requests模組的小夥伴也可以仔細閱讀
四、開工
首先我們開啟PyCharm,需要選擇一下它的頁面主題。選擇你喜歡的風格,以及選擇使用的Python版本。然後開啟一個你想要存放爬蟲的目錄,進入後長這樣。
我們再建立一個python檔案,輸入第一行程式碼來匯入requests庫:
import requests #匯入requests庫
然後用它來獲取咱們的目標網頁:
r = requests.get('https://unsplash.com') #像目標url地址傳送get請求,返回一個response物件
print(r.text) #r.text是http response的網頁HTML
在選單欄點選“Run”,選擇該檔案(或者直接在視窗中點選右鍵,執行該檔案):
執行完之後,底部會出現輸出結果:
可以看到底部是獲取到的網頁內容。這就完成了爬蟲的第一步,獲取到了網頁的HTML內容。
怎麼樣,很簡單吧。
這只是用到了requests庫的get請求,還有其他的請求使用也與之類似。下面我們簡單介紹一下每個請求的用法。
五、requests庫的使用
因為有中文的官方文件,我就不介紹所有的功能了,只把常用到的說一下,大家用到更多功能的時候再去翻官方文件吧。
requests 庫就是用來發送各種請求的,所以,我們就來看看各種請求怎麼使用:
5.1 get 請求
r = requests.get("https://unsplash.com")
這就是我們剛剛用到的。其實就是向網站傳送了一個get請求,然後網站會返回一個response。r 就是response。大家可以在執行的時候檢視r的type。
print(type(r))
get請求還可以傳遞引數:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.get("http://httpbin.org/get", params=payload)
上面程式碼向伺服器傳送的請求中包含了兩個引數key1和key2,以及兩個引數的值。實際上它構造成了如下網址:
http://httpbin.org/get?key1=value1&key2=value2
5.2 POST請求
無引數的post請求:
r = requests.post("http://httpbin.org/post")
有引數的post請求:
payload = {'key1': 'value1', 'key2': 'value2'}
r = requests.post("http://httpbin.org/post", data=payload)
post請求多用來提交表單資料,即填寫一堆輸入框,然後提交。
5.3 其他請求
其他一些請求例如put請求、delete請求、head請求、option請求等其實都是類似的。但是平時用的不多,就不仔細介紹了。有用到的可以去看官網文件哦。閱讀官方文件是必備技能!
r = requests.put("http://httpbin.org/put")
r = requests.delete("http://httpbin.org/delete")
r = requests.head("http://httpbin.org/get")
r = requests.options("http://httpbin.org/get")
六、後語
我們剛才用requests庫傳送http請求獲得了網頁的HTML內容,那麼應該如何從HTML中獲得圖片呢?
BeautifulSoup庫就此登場啦,趕快去看一下篇來了解它的用法吧。