Python爬蟲小白入門(二)requests庫


一、前言


為什么要先說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庫就此登場啦,趕快去看一下篇來了解它的用法吧。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM