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

1、前言


爲何要先說Requests庫呢,由於這是個功能很強大的網絡請求庫,能夠實現跟瀏覽器同樣發送各類HTTP請求來獲取網站的數據。網絡上的模塊、庫、包指的都是同一種東西,因此後文中可能會在不一樣地方使用不一樣稱謂,不要迷惑哦。html

結合一個實例來說解吧。個人一個設計師小夥伴常去一些設計類網站收集素材,其中有個網站Unsplash裏面美圖特別多,因此想要把裏面的圖片都保存下來,這樣我們的小爬蟲就登場了。說幹就幹,趕忙開始吧。python

先來準備環境api

2、運行環境


  • 系統版本
    我使用的是Windows10。
    好多小夥伴使用的是Mac,配置上基本相同。因爲我多年混跡於微軟的開發平臺,常用Visual Studio、SQL Server啥的,用Windows用習慣了(其實主要是由於Qiong窮!)。因此這個教程我就以Windows系統爲例了。

  • Python版本
    我電腦裝了好多個Python版本(學一個裝一個。。。),不過推薦使用Anaconda這個科學計算版本,主要是由於它自帶一個包管理工具,能夠解決有些包安裝錯誤的問題。去Anaconda官網,選擇Python3.5版本,而後下載安裝。瀏覽器

  • IDE
    我使用的是PyCharm,是專門爲Python開發的IDE。這是JetBrians的產品,點我下載服務器

3、requests 庫的安裝


使用Anaconda 版本的得小夥伴兒:用管理員權限運行cmd命令窗口,而後輸入
conda install requests網絡

看動圖:工具

直接使用Python3.5的小夥伴兒輸入這個命令:
pip install requestspost

若是你機器上存在多個Python版本,要給Python3.5的版本安裝requests庫,須要輸入如下命令:
py -3 -m pip install requests網站

好啦,requests庫安裝完畢,接下來咱們會在實際例子中演示它的使用。想要深刻了解requests模塊的小夥伴也能夠仔細閱讀英文官方文檔,和中文官方文檔,若是用到該文沒有提到的功能,則查看文檔便可。ui

4、開工


首先咱們打開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請求,還有其餘的請求使用也與之相似。下面咱們簡單介紹一下每一個請求的用法。

5、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")

6、後語


咱們剛纔用requests庫發送http請求得到了網頁的HTML內容,那麼應該如何從HTML中得到圖片呢?

BeautifulSoup庫就此登場啦,趕快去看一下篇來了解它的用法吧。

相關文章
相關標籤/搜索