溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-2、請(qǐng)求庫(kù)安裝:GeckoDriver、PhantomJS、Aiohtt

發(fā)布時(shí)間:2020-07-31 17:28:00 來源:網(wǎng)絡(luò) 閱讀:181 作者:學(xué)Python派森 欄目:編程語言

1.1.4 GeckoDriver的安裝

在上一節(jié)我們了解了 ChromeDriver 的配置方法,配置完成之后我們便可以用 Selenium 來驅(qū)動(dòng) Chrome 瀏覽器來做相應(yīng)網(wǎng)頁的抓取。
那么對(duì)于 Firefox 來說,也可以使用同樣的方式完成 Selenium 的對(duì)接,這時(shí)需要安裝另一個(gè)驅(qū)動(dòng) GeckoDriver。
本節(jié)來介紹一下 GeckoDriver 的安裝過程。

1. 相關(guān)鏈接
  • GitHub:https://github.com/mozilla/ge...
  • 下載地址:https://github.com/mozilla/ge...
2. MAC安裝方式
brew?install?GeckoDriver
3. 驗(yàn)證安裝

配置完成之后,就可以在命令行下直接執(zhí)行 geckodriver 命令測(cè)試。
命令行下輸入:
geckodriver
這時(shí)控制臺(tái)應(yīng)該有類似輸出,如圖 1-20 所示:

Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)-2、請(qǐng)求庫(kù)安裝:GeckoDriver、PhantomJS、Aiohtt

圖 1-20 控制臺(tái)輸出
如果有類似輸出則證明 GeckoDriver 的環(huán)境變量配置好了。
隨后再在程序中測(cè)試,執(zhí)行如下 Python 代碼:

from selenium import webdriver
browser = webdriver.Firefox()
Python資源分享qun 784758214 ,內(nèi)有安裝包,PDF,學(xué)習(xí)視頻,這里是Python學(xué)習(xí)者的聚集地,零基礎(chǔ),進(jìn)階,都?xì)g迎

運(yùn)行之后會(huì)彈出一個(gè)空白的 Firefox 瀏覽器,證明所有的配置都沒有問題,如果沒有彈出,請(qǐng)檢查之前的每一步的配置。
如果沒有問題,接下來我們就可以利用 Firefox 配合 Selenium 來做網(wǎng)頁抓取了。

4. 結(jié)語

到現(xiàn)在位置我們就可以使用 Chrome 或 Firefox 進(jìn)行網(wǎng)頁抓取了,但是這樣可能有個(gè)不方便之處,因?yàn)槌绦蜻\(yùn)行過程中需要一直開著瀏覽器,在爬取網(wǎng)頁的過程中瀏覽器可能一直動(dòng)來動(dòng)去,著實(shí)不方便。目前最新的 Chrome 瀏覽器版本已經(jīng)支持了×××面模式,但如果版本較舊就不支持。所以在這里還有另一種方便的選擇就是安裝一個(gè)×××面瀏覽器 PhantomJS,抓取過程會(huì)在后臺(tái)運(yùn)行,不會(huì)再有窗口出現(xiàn),這樣就方便了很多,所以在下一節(jié)我們?cè)倭私庖幌?PhantomJS 的相關(guān)安裝方法。

1.1.5 PhantomJS的安裝

如果我們使用 Chrome 或 Firefox 進(jìn)行網(wǎng)頁抓取的話,每次抓取的時(shí)候,都會(huì)彈出一個(gè)瀏覽器,比較影響使用。所以在這里再介紹一個(gè)×××面瀏覽器,叫做 PhantomJS。
PhantomJS 是一個(gè)×××面的,可腳本編程的 WebKit 瀏覽器引擎。它原生支持多種 web 標(biāo)準(zhǔn):DOM 操作,CSS 選擇器,JSON,Canvas 以及 SVG。
Selenium 支持 PhantomJS,這樣在運(yùn)行的時(shí)候就不會(huì)再?gòu)棾鲆粋€(gè)瀏覽器了,而且其運(yùn)行效率也是很高的,還支持各種參數(shù)配置,使用非常方便,下面我們就來了解一下 PhantomJS 的安裝過程。

1. 相關(guān)鏈接
  • 官方網(wǎng)站:http://phantomjs.org
  • 官方文檔:http://phantomjs.org/quick-st...
  • 下載地址:http://phantomjs.org/download...
  • API接口說明:http://phantomjs.org/api/comm...
2. MAC安裝
brew cask?install?phantomjs
3. 驗(yàn)證安裝

在 Selenium 中使用的話,我們只需要將 Chrome 切換為 PhantomJS 即可。

from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get('https://www.baidu.com')
print(browser.current_url)

運(yùn)行之后我們就不會(huì)發(fā)現(xiàn)有瀏覽器彈出了,但實(shí)際上 PhantomJS 已經(jīng)運(yùn)行起來了,在這里我們?cè)L問了百度,然后將當(dāng)前的 URL 打印出來。
控制臺(tái)輸出如下:

https://www.baidu.com/

如此一來我們便完成了 PhantomJS 的配置,在后面我們可以利用它來完成一些頁面的抓取。

4. 結(jié)語

以上三節(jié)我們介紹了 Selenium 對(duì)應(yīng)的三大主流瀏覽器的對(duì)接方式,在后文我們會(huì)對(duì) Selenium 及各個(gè)瀏覽器的對(duì)接方法進(jìn)行更加深入的探究。

1.1.6 Aiohttp的安裝

之前我們介紹的 Requests 庫(kù)是一個(gè)阻塞式 HTTP 請(qǐng)求庫(kù),當(dāng)我們發(fā)出一個(gè)請(qǐng)求后,程序會(huì)一直等待服務(wù)器的響應(yīng),直到得到響應(yīng)后程序才會(huì)進(jìn)行下一步的處理,其實(shí)這個(gè)過程是比較耗費(fèi)資源的。如果程序可以在這個(gè)等待過程中做一些其他的事情,如進(jìn)行請(qǐng)求的調(diào)度、響應(yīng)的處理等等,那么爬取效率一定會(huì)大大提高。

Aiohttp 就是這樣一個(gè)提供異步 Web 服務(wù)的庫(kù),從 Python3.5 版本開始,Python 中加入了 async/await 關(guān)鍵字,使得回調(diào)的寫法更加直觀和人性化,Aiohttp的異步操作借助于 async/await 關(guān)鍵字寫法變得更加簡(jiǎn)潔,架構(gòu)更加清晰。使用異步請(qǐng)求庫(kù)來進(jìn)行數(shù)據(jù)抓取會(huì)大大提高效率,下面我們來看一下這個(gè)庫(kù)的安裝方法。

1. 相關(guān)鏈接
  • 官方文檔:http://aiohttp.readthedocs.io...
  • GitHub:https://github.com/aio-libs/a...
  • PyPi:https://pypi.python.org/pypi/...
2. 安裝

推薦使用 Pip 安裝,命令如下:

pip3?install?aiohttp

另外官方還推薦安裝如下兩個(gè)庫(kù),一個(gè)是字符編碼檢測(cè)庫(kù) cchardet,另一個(gè)是加速 DNS 解析庫(kù) aiodns,安裝命令如下:

pip3?install?cchardet aiodns
3. 測(cè)試安裝

安裝完成之后,可以在 Python 命令行下測(cè)試。

$ python3
>>> import aiohttp
Python資源分享qun 784758214 ,內(nèi)有安裝包,PDF,學(xué)習(xí)視頻,這里是Python學(xué)習(xí)者的聚集地,零基礎(chǔ),進(jìn)階,都?xì)g迎

如果沒有錯(cuò)誤報(bào)出,則證明庫(kù)已經(jīng)安裝好了。

4. 結(jié)語

我們會(huì)在后面的實(shí)例中用到這個(gè)庫(kù),比如維護(hù)一個(gè)代理池,利用異步方式檢測(cè)大量代理的運(yùn)行狀況,極大提高效率。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI