Python3爬蟲環(huán)境配置——請求庫安裝(附Firefox和Chrome的無頭模式操作)

Python3爬蟲環(huán)境配置——請求庫安裝

一、常用庫

爬蟲主要分為三步:抓取頁面分析頁面以及存儲數(shù)據(jù)。抓取頁面是第一步,此過程中大多需要模擬瀏覽器向Server發(fā)出請求,需要用到一些Python庫實現(xiàn)HTTP操作。常用的有

requests、Selenium、aiohttp。

上述三方庫可以通過pip、whl等方式安裝,使用conda的用戶可以通過conda命令安裝, 使用方法同pip。

二、瀏覽器配置

Chrome(Google瀏覽器)配置

由于Selenium庫是一個自動化測試工具,所以需要配合瀏覽器來使用,如果使用Chrome 瀏覽器需要使用ChromeDriver驅(qū)動。安裝ChromeDriver需要根據(jù)Chrome的版本下載, 可以通過Chrome菜單“設(shè)置”→“關(guān)于Chrome”查看版本號,如下:

前往ChromeDriver倉庫http://chromedriver.storage.googleapis.com/index.html下載

ChromeDriver,找到對應(yīng)版本,最新版本與Chrome的版本號對應(yīng),舊版本可自行百度對照表。下載完成后,將chromedriver.exe文件拖拽到Python的Scripts,也可單獨配置環(huán)境變量。

配置完成后,可在終端(命令提示符或cmd)執(zhí)行chromedriver命令,執(zhí)行結(jié)果如下:

在程序中測試時,使用Python代碼:

運行后驗證是否打開了一個空白的Chrome頁面,是則沒有問題,如果閃退說明版本不兼

容。

Firefox(火狐瀏覽器)配置

火狐瀏覽器的驅(qū)動使用GeckoDriver驅(qū)動,首先確保Firefox瀏覽器正常運行并確定版本, 通過Firefox菜單“幫助”→“關(guān)于Mozilla Firefox”查看版本號,如下:

通過GitHub下載GeckoGriver,網(wǎng)址https://github.com/mozilla/geckodriver/releases,目前最新版本為0.26,下載即可, 注意存在的已知問題,如下:

如Windows需要有VS運行環(huán)境。

下載完成后操作geckodriver.exe如上,終端運行驗證。使用Python代碼操作:

fromseleniumimportwebdriverbrowser=webdriver.Firefox()

打開空白標簽頁表示正常。

?。?!選擇上述任一瀏覽器安裝并配置驅(qū)動,即可通過其進行網(wǎng)頁抓取工作了。

PhantomJS

使用正常瀏覽器進行抓取時需要打開瀏覽器,動來動去不方便。最新的Chrome瀏覽器已經(jīng)支持無界面瀏覽模式,也可以安裝PhantomJS無界面瀏覽器。它是一個無界面、可腳本編程的WebKit瀏覽器引擎,原生支持多種Web標準:DOM操作、CSS選擇器JSON、

Canvas以及SVG

Selenium支持PhantomJS,運行時不會有瀏覽器彈出,并且效率高,支持參數(shù)配置,使用方便。

官網(wǎng)https://phantomjs.org/download.html下載。

但是PhantomJS已經(jīng)暫停更新,并且Selenium已經(jīng)決定不支持

PhantomJS了,Chrome和Firefox也都有了無頭模式,實現(xiàn)方法如下:

Chrome的無頭模式,實現(xiàn)的Python代碼:

from selenium import webdriver

options = webdriver.ChromeOptions()

options.add_argument("‐headless")

browser = webdriver.Chrome(chrome_options = options)

Firefox的無頭模式,實現(xiàn)的Python代碼:

from selenium import webdriver

options = webdriver.FirefoxOptions()

options.add_argument("‐headless")

browser = webdriver.Firefox(firefox_options = options)

關(guān)注微信公眾號“數(shù)據(jù)摸魚”,學習Python和數(shù)據(jù)分析,獲取學習資源。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容