【筆記】Selenium 實作:讓你的網頁自動幫你開啟網站

更新於 發佈於 閱讀時間約 6 分鐘
當Selenium環境做好以後就可以拿它來做點事情了,這次我們試試如何讓網頁幫你搜尋並登入網站,以電子書網站readmoo為例。

延續【筆記】Selenium with Python 環境配置

#導入webdriver​
from selenium import webdriver

#建立一個chrome的webdriver
driver = webdriver.Chrome()

#開啟的網址是google首頁
driver.get("https://www.google.com")

#防止網頁馬上開了就關,再執行一次檔案就可以關閉頁面
input()

為了要讓接下來的程式運作順利,我們需要載入兩個套件:

#載入需要的套件​
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys​
  • By 套件 用於協助定位元素,讓我們可以在頁面中找到想要的操作元素

常用的定位方法如:

By.CSS_SELECTOR:抓CSS選擇器來定位,幾乎可以做到大多數的定位方式

By.ID:抓"ID"屬性來定位

By.NAME:抓"NAME"屬性來定位

By.LINK_TEXT:根據連接元素的文本內容來定位

By.XPATH:用XPath表達式定位

By.TAG_NAME:用標籤定位元素,例如<div>、<p>、<a>、<input>

開啟瀏覽器的「開發人員工具」,點擊元素(Elements)分頁就可以看到了

google搜尋欄位的元素

google搜尋欄位的元素

  • Keys 套件 用於模擬鍵盤操作

常用的操作如:

Keys.ENTER:就是鍵盤上的ENTER,Keys.RETURN同等意思

Keys.ESCAPE:Esc鍵

Keys.ARROW_UP:上箭頭;DOWN,下箭頭;LEFT,左箭頭;RIGHT,右箭頭。

Keys.BACKSPACE:退格鍵,就是鍵盤的ENTER上面長長的"<——"

Keys.DELETE:刪除鍵

Keys.PAGE_UP:Page Up鍵,可以頁面往上移動

Keys.PAGE_DOWN:Page Down鍵,可以頁面往下移動


導入套件後,首先我們需要定位google的搜尋欄位,以上方截圖當例子:

#定義一個​變數為search_box,它是用來抓取搜尋欄位的元素的
search_box = driver.find_element(By.NAME,"q")


抓取到我們要的元素以後,由於我們要搜尋Readmoo這本電子書的網站,因此我們就讓輸入框輸入 "readmoo"

#調用​search_box鎖定的輸入框,在輸入框輸入 readmoo
search_box.send_keys("readmoo")


輸入完之後,點擊送出

#調用​search_box鎖定的輸入框,在輸入框模仿鍵盤按ENTER
search_box.send_keys(Keys.ENTER)


結果如下:

raw-image
接著我們要控制瀏覽器鎖定Google搜尋結果:

#​定義一個變數為 search_results,用來抓取Google搜尋結果的元素
search_results = driver.find_elements(By.CSS_SELECTOR, "div.g")


"div.g"怎麼來的

透過瀏覽器的「開發者工具」,我們會發現網頁用<div></div>把搜尋結果包在裡面,如下圖:

raw-image

展開後,每個搜尋結果的class都會一個帶有g開頭(google額外的廣告會是不同的格式),所以可以用css選擇器(By.CSS_SELECTOR)選擇div裡面的g,篩選到每個搜尋結果,如下圖:

raw-image

我們篩選第一個當成是我們到網站的選項,並且點擊,到達我們要到的網址

#定義first_results,他是搜尋結果的第一個
first_results = search_results[0]
#定義link,調用​first_results,並進行定位
link = first_results.find_element(By.TAG_NAME,"h3")
#點擊link​
link.click()

結果如下:

閃退了,並出現錯誤提示

閃退了,並出現錯誤提示

錯誤提示 IndexError: list index out of range,表示嘗試訪問的陣列元素索引超出陣列範圍,在網頁自動化跳轉的情況下產生這個錯誤通常是網頁還沒有載入資料就先執行檔案了,導致抓不到。

因此需要讓我們的driver多一點等待,需要加入這個設定:

#​driver加入隱含等待
driver.implicitly_wait(10)

隱含等待告訴selenium尋找元素時,最多等10秒,如果10秒內出現要尋找的元素,繼續執行後續的程式碼,等超過10秒都沒有出現,則跳異常。

總結

#導入webdriver​
from selenium import webdriver

#套件​
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()
driver.get("https://www.google.com")
driver.implicitly_wait(10)

#google欄位,關鍵字輸入
search_box = driver.find_element(By.NAME,"q")
search_box.send_keys("readmoo")
search_box.send_keys(Keys.ENTER)

#搜尋結果定位
search_results = driver.find_elements(By.CSS_SELECTOR, "div.g")
first_results = search_results[0]
link = first_results.find_element(By.TAG_NAME,"h3")
link.click()

input()


結果如下:

raw-image

我們讓瀏覽器自動幫我們搜尋預想到的頁面了,但頁面有彈窗,如果想要讓瀏覽器做別的動作,那就會需要對彈窗進行處理,下一篇內容會讓瀏覽器關閉彈窗,並自動登入帳號成功。

avatar-img
21會員
18內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
冬霞的沙龍 的其他內容
你可能也想看
Google News 追蹤
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
#maxask #惡意軟體 #瀏覽器被惡意或廣告工具綁架 URL轉址(重定向、重新導向):當使用者瀏覽A網址時,自動跳轉到B網址。 - 發生情境: 使用edge瀏覽器,使用Google搜尋引擎, 搜尋XXX關鍵字,網頁自動跳轉到maxask的搜尋介面。
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
手機版進入Google表單有三步驟 第一是進入Google瀏覽器, 第二是在瀏覽器上搜尋框,輸入Google表單, 找到,Google表單登錄,的網頁,點按進入即可 接下來就會出現目前的畫面,我們只要點選,前往表單,就可進入正式編輯的頁面了 首次進入表單編輯頁面,我們必須要為表單,訂定一個
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
下載: https://chromedriver.com/download#stable 選擇對應版本下載 如果不能執行就檢查一下權限,賦予執行的權力 例如: chmod +x /usr/local/bin/chromedriver (位置請自行變更)
Thumbnail
工欲善其事,必先找關鍵字分析工具:常見的關鍵字分析工具: Google Ads 關鍵字規劃工具、Ubersuggest、Ahrefs、Search Console 和 Google Trends …這些工具都是用於收集關鍵字數據和分析的工具,它們各自有不同的優點和缺點。以下是這些工具的比較:
Thumbnail
在數位時代,網站的SEO(搜尋引擎優化)扮演著關鍵角色,而Google Search Console成為優化工作中不可或缺的利器。本文將介紹如何善用Google Search Console進行網站SEO,提升在搜尋引擎中的可見性。 首先,了解SEO的基本概念至關重要。SEO是指通過優化網站結構和
Thumbnail
SEO(搜尋引擎優化)是網站提升在搜尋引擎排名的有效手段,而關鍵字的選擇與優化是SEO的核心。本文將深入介紹如何挑選和優化關鍵字,以提高網站在搜尋引擎上的曝光度。 首先,了解SEO是什麼。SEO是一項通過優化網站結構、內容和連結,提高網站在搜尋引擎排名的技術。在這個過程中,關鍵字的選擇至關重要,因
Thumbnail
在網路時代,SEO(搜尋引擎優化)成為網站主人不可或缺的一環。理解搜尋引擎演算法的基本原理是提高網站排名的關鍵。在這裡,我們將深入探討SEO的基礎知識,包括Google的Search Console工具,以及一些提升SEO效果的關鍵點。 首先,SEO是什麼?SEO是搜尋引擎優化的縮寫,是一種通過改
Thumbnail
SEO,即搜尋引擎優化,是數位媒體行銷中至關重要的一環。對於初學者而言,建立一個全面的學習指南是邊向SEO巔峰的第一步。從基礎到進階,這是一場關於SEO的冒險之旅。 首先,SEO是什麼?SEO即通過優化網站內外部元素,提高其在搜尋引擎中的排名,從而吸引更多有價值的訪客。要深入了解SEO,不妨從Go
Thumbnail
現代社會跟以前不同了,人人都有一支手機,只要打開就可以獲得各種資訊。過去想要辦卡或是開戶就要跑一趟銀行,然而如今科技快速發展之下,金融App無聲無息地進到你生活中。但同樣的,每一家銀行都有自己的App時,我們又該如何選擇呢?(本文係由國泰世華銀行邀約) 今天我會用不同角度帶大家看這款國泰世華CUB
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
#maxask #惡意軟體 #瀏覽器被惡意或廣告工具綁架 URL轉址(重定向、重新導向):當使用者瀏覽A網址時,自動跳轉到B網址。 - 發生情境: 使用edge瀏覽器,使用Google搜尋引擎, 搜尋XXX關鍵字,網頁自動跳轉到maxask的搜尋介面。
Thumbnail
Selenium 是一個範圍廣泛的工具和函式庫的總稱專案,用於啟用和支援網頁瀏覽器的自動化。Selenium WebDriver 提供了 C#、JavaScript、Java、Python、Ruby 等多種語言的 API,可以用於編寫自動化測試軟體。 在定位元素時,WebDriver 提供對這 8
Thumbnail
手機版進入Google表單有三步驟 第一是進入Google瀏覽器, 第二是在瀏覽器上搜尋框,輸入Google表單, 找到,Google表單登錄,的網頁,點按進入即可 接下來就會出現目前的畫面,我們只要點選,前往表單,就可進入正式編輯的頁面了 首次進入表單編輯頁面,我們必須要為表單,訂定一個
Thumbnail
本章目的是為讀者提供有關如何設置JavaScript開發環境的知識,包括在瀏覽器、Node.js和各種編輯器和IDE中編寫和運行JavaScript的信息。此外,本章還介紹了如何架設本地開發伺服器以模擬實際的網頁環境。這些知識對於希望開發前端應用或後端服務的JavaScript開發者來說都是必要的。
下載: https://chromedriver.com/download#stable 選擇對應版本下載 如果不能執行就檢查一下權限,賦予執行的權力 例如: chmod +x /usr/local/bin/chromedriver (位置請自行變更)
Thumbnail
工欲善其事,必先找關鍵字分析工具:常見的關鍵字分析工具: Google Ads 關鍵字規劃工具、Ubersuggest、Ahrefs、Search Console 和 Google Trends …這些工具都是用於收集關鍵字數據和分析的工具,它們各自有不同的優點和缺點。以下是這些工具的比較:
Thumbnail
在數位時代,網站的SEO(搜尋引擎優化)扮演著關鍵角色,而Google Search Console成為優化工作中不可或缺的利器。本文將介紹如何善用Google Search Console進行網站SEO,提升在搜尋引擎中的可見性。 首先,了解SEO的基本概念至關重要。SEO是指通過優化網站結構和
Thumbnail
SEO(搜尋引擎優化)是網站提升在搜尋引擎排名的有效手段,而關鍵字的選擇與優化是SEO的核心。本文將深入介紹如何挑選和優化關鍵字,以提高網站在搜尋引擎上的曝光度。 首先,了解SEO是什麼。SEO是一項通過優化網站結構、內容和連結,提高網站在搜尋引擎排名的技術。在這個過程中,關鍵字的選擇至關重要,因
Thumbnail
在網路時代,SEO(搜尋引擎優化)成為網站主人不可或缺的一環。理解搜尋引擎演算法的基本原理是提高網站排名的關鍵。在這裡,我們將深入探討SEO的基礎知識,包括Google的Search Console工具,以及一些提升SEO效果的關鍵點。 首先,SEO是什麼?SEO是搜尋引擎優化的縮寫,是一種通過改
Thumbnail
SEO,即搜尋引擎優化,是數位媒體行銷中至關重要的一環。對於初學者而言,建立一個全面的學習指南是邊向SEO巔峰的第一步。從基礎到進階,這是一場關於SEO的冒險之旅。 首先,SEO是什麼?SEO即通過優化網站內外部元素,提高其在搜尋引擎中的排名,從而吸引更多有價值的訪客。要深入了解SEO,不妨從Go