Python3網絡爬蟲實戰---1、請求庫安裝:Requests、Selenium、ChromeDriver

下一篇文章:

爬蟲可以簡單分爲幾步:抓取頁面、分析頁面、存儲數據。

在第一步抓取頁面的過程中,我們就需要模擬瀏覽器向服務器發出請求,所以需要用到一些 Python 庫來實現 HTTP 請求操作,在本書中我們用到的第三方庫有 Requests、Selenium、Aiotttp 等。

在本節我們介紹一下這些請求庫的安裝方法。

1.1.1 Requests的安裝

由於 Requests 屬於第三方庫,也就是 Python 默認不會自帶這個庫,需要我們手動去安裝,下面我們首先看一下它的安裝過程。

1. 相關鏈接

  • 2. Pip安裝

    無論是 Windows、Linux 還是 Mac,都可以通過 Pip 這個包管理工具來安裝。

    在命令行下運行如下命令即可完成 Requests 庫的安裝:

    pip3 install requests

    這是最簡單的安裝方式,推薦此種方法安裝。

    3. Wheel安裝

    Wheel 是 Python 的一種安裝包,其後綴爲 whl,在網速較差的情況下可以選擇下載下 Wheel 文件再安裝,直接用 pip3 命令加文件名安裝即可。

    不過在這之前需要先安裝 Wheel 庫,安裝命令如下:

    pip3 install wheel

    然後到 PyPi 上下載對應的 Wheel 文件,如當前最新版本爲 2.17.3,則打開:https://pypi.python.org/pypi/...,下載 requests-2.17.3-py2.py3-none-any.whl 到本地。

    隨後命令行進入 Wheel 文件目錄,利用 Pip 安裝即可。

    pip3 install requests-2.17.3-py2.py3-none-any.whl

    這樣我們同樣可以完成 Requests 的安裝。

    4. 源碼安裝

    那麼如果你不想用 Pip 來安裝,或者想獲取某一特定版本,可以選擇下載源碼安裝。

    此種方式需要先找到此庫的源碼地址,然後下載下來再用命令安裝。

    Requests 項目的地址是:https://github.com/kennethrei...

    可以通過 Git 來下載源代碼:

    git clone git://github.com/kennethreitz/requests.git

    或通過 curl 下載:

    curl -OL https://github.com/kennethreitz/requests/tarball/master

    下載下來之後,進入目錄,執行如下命令安裝即可:

    cd requests
    python3 setup.py install

    命令執行結束後即可完成 Requests 的安裝,由於此種安裝方式比較繁瑣,後文此種安裝方式不再贅述。

    5. 驗證安裝

    爲了驗證庫是否已經安裝成功,可以在命令行下測試一下:

    $ python3
    >>> import requests

    在命令行首先輸入 python3,進入命令行模式,然後輸入如上內容,如果什麼錯誤提示也沒有,那麼就證明我們已經成功安裝了 Requests。

    1.1.2 Selenium的安裝

    Selenium 是一個自動化測試工具,利用它我們可以驅動瀏覽器執行特定的動作,如點擊、下拉等等操作,對於一些 JavaScript 渲染的頁面來說,此種抓取方式非常有效,下面我們來看下 Selenium 的安裝過程。

    1. 相關鏈接

    2. Pip安裝

    推薦直接使用 Pip 安裝,執行如下命令即可:

    pip3 install selenium

    3. Wheel安裝

    也可以到 PyPi 下載對應的 Wheel 文件進行安裝,https://pypi.python.org/pypi/... 如當前最新版本爲 3.4.3,則下載 selenium-3.4.3-py2.py3-none-any.whl。

    然後進入 Wheel 文件目錄,使用 Pip 安裝。

    pip3 install selenium-3.4.3-py2.py3-none-any.whl

    4. 驗證安裝

    進入 Python 命令行交互模式,導入一下 Selenium 包,如果沒有報錯,則證明安裝成功。

    $ python3
    >>> import selenium

    但這樣還不夠,我們還需要瀏覽器如 Chrome、Firefox 等瀏覽器來配合 Selenium 工作。

    下面我們會介紹 Chrome、Firefox、PhantomJS 三種瀏覽器的配置方式,有了瀏覽器我們纔可以配合 Selenium 進行頁面的抓取。

    1.1.3 ChromeDriver的安裝

    在上節我們成功安裝好了 Selenium 庫,但是它是一個自動化測試工具,需要瀏覽器來配合它使用,那麼本節我們就介紹一下 Chrome 瀏覽器及 ChromeDriver 驅動的配置。
    首先需要下載一個 Chrome 瀏覽器,方法多樣,在此不再贅述。
    隨後我們需要安裝一個 ChromeDriver 才能驅動 Chrome 瀏覽器完成相應的操作,下面我們來介紹下怎樣安裝 ChromeDriver。

    1. 相關鏈接

    2. 準備工作

    在這之前請確保已經正確安裝好了 Chrome 瀏覽器並可以正常運行,安裝過程不再贅述。

    3. 查看版本

    點擊 Chrome 的菜單,幫助->關於 Chrome,即可查看 Chrome 的版本號,
    我的版本是

    版本 74.0.3729.169(正式版本) (64 位)

    請記住 Chrome 版本號,在後面選擇 ChromeDriver 版本時需要用到。

    4. 下載ChromeDriver

    打開 ChromeDriver 的官方網站,鏈接爲:

    https://sites.google.com/a/chromium.org/chromedriver/downloads

    可以看到到目前爲止最新版本爲 2.31,其支持的 Chrome 瀏覽器版本爲 73-76,最新版本以官網爲準,官網頁面如圖 1-15 所示:
    7008cb6020f31e12e83123a4e2ee1dae.png

    圖 1-15 官網頁面
    如果你的 Chrome 版本號是58-60,那麼可以選擇此版本下載。
    如果版本不在此範圍,那可以繼續查看之前的 ChromeDriver 版本,每個版本都有相應的支持 Chrome 版本介紹,請找好自己的 Chrome 瀏覽器版本對應的 ChromeDriver 版本再下載,否則可能導致無法正常工作。
    找好對應的版本號後隨後到 ChromeDriver 鏡像站下載對應的安裝包即可:https://chromedriver.storage....,不同平臺可以下載不同的安裝包。

    5. 環境變量配置

    下載完成後將 ChromeDriver 的可執行文件配置到環境變量下。
    在 Windows 下,建議直接將 chromedriver.exe 文件拖到 Python 的 Scripts 目錄下,如圖 1-16 所示:
    66aa328809f6810bf434f2296f8e6b34.jpeg
    圖 1-16 Python Scripts 目錄

    也可以單獨將其所在路徑配置到環境變量,環境變量的配置方法請參見 Python3 的安裝一節。
    Mac情況下,直接將chromedriver複製到/user/local/bin就可以了

    如果mac或Linux下,提示

    chromedriver: command not found

    就按照下面方法
    在 Linux、Mac 下,需要將可執行文件配置到環境變量或將文件移動到屬於環境變量的目錄裏。
    例如移動文件到 /usr/bin 目錄,首先命令行進入其所在路徑,然後將其移動到 /usr/bin:

    sudo mv chromedriver /usr/bin

    當然也可以將 ChromeDriver 配置到 $PATH,首先可以將可執行文件放到某一目錄,目錄可以任意選擇,例如將當前可執行文件放在 /usr/local/chromedriver 目錄下,接下來可以修改 ~/.profile 文件,命令如下:

    export PATH="$PATH:/usr/local/chromedriver"

    保存然後執行:

    source ~/.profile

    即可完成環境變量的添加。

    6. 驗證安裝

    配置完成之後,就可以在命令行下直接執行 chromedriver 命令了。
    命令行下輸入:
    chromedriver
    輸入控制檯有類似輸出,如圖 1-17 所示:
    0e32953f293641bb15039ff0d8d09181.jpeg
    圖 1-17 控制檯輸出
    如果有類似輸出則證明 ChromeDriver 的環境變量配置好了。
    隨後再在程序中測試,執行如下 Python 代碼:

    from selenium import webdriver
    browser = webdriver.Chrome()

    運行之後會彈出一個空白的 Chrome 瀏覽器,證明所有的配置都沒有問題,如果沒有彈出,請檢查之前的每一步的配置。
    如果彈出之後閃退,則可能是 ChromeDriver 版本和 Chrome 版本不簡容,請更換 ChromeDriver 版本。
    如果沒有問題,接下來我們就可以利用 Chrome 來做網頁抓取了。

    7. 結語

    既然 Chrome 可以通過 Selenium 驅動,Firefox 也可以,如果想要實現 Selenium 驅動 Firefox 瀏覽器可以參考下面的 GeckoDriver 的安裝。

    發表評論
    所有評論
    還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
    相關文章