當前位置:
首頁 > 最新 > python爬蟲知識點2-selenium的基礎知識點

python爬蟲知識點2-selenium的基礎知識點

在每天的生活中

總會遇到一些煩心的事

或者一些開心的事

當遇到煩心事的時候

希望能保持平靜的心態

冷靜的解決問題

遇到開心事的時候

同樣希望心態能夠平靜

不要被眼前的開心事沖昏頭腦

願每個人

都能在生活中

學會成長

今天探長和大家一起分享和探討有關selenium的相關話題,主要從selenium的使用場景、相關方法,以及實際操作等方面進行說明。

Part 1 -selenium使用場景

對於一般的網頁,使用python自帶的urllib庫,或者第三方的requests庫就可以實現網頁的請求,但現實中會出現結構負責的網頁,這時通過以上兩種請求庫就不能有效的實現網頁內容的獲取,因此我們需要使用selenium。

selenium主要有以下使用場景:

1. 簡化請求分析過程。selenium瀏覽器化的操作過程,有效簡化了請求分析過程,促使爬蟲程序更多的關注頁面解析和結果處理。

2. 實現JS渲染頁面內容的快速獲取。現實中的網頁有的是通過JS渲染的,例如某寶充滿了大量的JS,對於這種類型的網頁,如果使用urllib、requests庫,就需要分析JS從而得到想要的內容,而selenium可以實現所見即所得,即網頁上能看到的內容均可一步獲取。

3. 實現響應式的交互操作。網頁中經常會遇到需要執行某些操作才能載入某些網頁元素的情況,例如登陸訪問等,這時普通的請求方式模擬困難,而selenium可以快速的進行交互操作,從而實現頁面請求。

Part 2 - selenium操作方法

探長將從selenium的安裝開始,以數據的獲取為止,對selenium的操作方法進行全面的介紹,主要包括瀏覽器對象的聲明、頁面的驅動請求、元素節點的定位獲取、元素內容及屬性數據的獲取等。

Part 3 - selenium的實際操作

1. selenium安裝

1.1 selenium庫的安裝

pip install selenium

1.2 瀏覽器驅動的安裝

安裝完selenium後還不能正常使用,需要安裝瀏覽器的驅動;

不同的瀏覽器具有不同的驅動,常見的驅動有chromedriver、

firefoxdriver、edgedriver、safaridriver等,

這裡我們chromedirver為例,在網站上搜索chromedriver

下載相應版本的瀏覽器驅動(注意與chrome版本相匹配),

下載後進行解壓,同時把其目錄配置到環境變數中即可。

2. 瀏覽器對象聲明方法

fromseleniumimportwebdriver

browser1 = webdriver.Chrome()# 聲明Chrome瀏覽器對象

browser2 = webdriver.Firefox()# 聲明Firefox瀏覽器對象

browser3 = webdriver.Safari()# 聲明Safari瀏覽器對象

browser4 = webdriver.Edge()# 聲明edge瀏覽器對象

3. 頁面請求方法

3.1 一般請求方法

browser1.get("https://www.jd.com")

3.2 添加異常異常的請求方法

一般情況下,請求頁面時可能會出現TimeoutException異常,

因此需要增加try...except語句

fromselenium.common.exceptionsimportTimeoutException

try:

browser1.get("https://www.jd.com")

exceptTimeoutException:

browser1.get("https://www.jd.com")

4. 元素獲取、交互動作與等待

進入到網頁後,我們需要獲取相關元素,例如輸入框和確定按鈕,獲取元素後需要進行類似於瀏覽器中的操作,即在輸入框中輸入查找內容,並點擊確定進行搜索;

只有在頁面元素載入出來後才能進行後續交互操作,因此需要引入等待概念,顧名思義等待就是等待網頁的某一元素呈現可見、可點擊等狀態,然後才能進行相應的交互動作。常見的等待方法包括presence_of_element_located、element_to_be_clickable等;

載入出來後需要進行交互操作,輸入操作的方法為send_keys,確定操作的方法為click,清除輸入框中內容的方法為clear。

5. 異常處理方法

6. 內容及屬性的獲取

網站html獲取方法可以通過page_source方法進行獲取

html = browser1.page_source

獲取到內容之後就可以通過解析庫進行相關數據的獲取,

例如pyquery、beautifulsoup、re等

以上就是selenium庫基本安裝及使用方法的相關介紹,希望能幫助到你!探長後期會專門寫一篇關於selenium抓取網站數據並進行數據處理分析的相關案例,敬請期待!如有任何問題,歡迎大家與探長聯繫(昵稱黃象探長),或者進行留言互動!

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 Python數據小屋 的精彩文章:

TAG:Python數據小屋 |