1. 打開網頁: 初步操作
如果你曾經夢想成為網頁的主宰者,那麼你來對了地方!今天我們將用 Selenium 打開 網頁並學習如何與它們互動。想像一下,你像指揮家一樣掌控著瀏覽器,而整個互聯網 就像樂團,而樂譜就是 Python 代碼。現在讓我們開始我們的音樂會吧!
在我們與網頁互動之前,首先我們需要打開它,對吧?這就像在找到書之前先步入圖書館一樣。在 Selenium 中,打開網頁是通過瀏覽器驅動完成的。目前,我們假設你已經安裝好了 Selenium 和對應的瀏覽器驅動(例如 ChromeDriver 或 GeckoDriver)。如果你參加過之前的課程,你應該知道怎麼做。如果沒有,請回到之前的內容並復習。
現在,我們來看看如何從簡單打開網頁開始:
from selenium import webdriver
# 創建 Chrome 瀏覽器的 webdriver 實例
driver = webdriver.Chrome()
# 打開網頁
driver.get('https://www.example.com')
# 在控制台輸出頁面標題
print(driver.title)
# 關閉瀏覽器
driver.quit()
代碼中發生了什麼:
- 匯入 webdriver: 這是 Selenium 的核心,用於管理瀏覽器。
- 創建驅動: 在這裡我們創建一個 Chrome 的驅動對象。這也可以是其他的瀏覽器,只要你有對應的驅動。
- 打開頁面:
get()方法加載提供的 URL。 - 獲取標題: 使用
driver.title我們可以在控制台輸出當前頁面的標題。 - 關閉瀏覽器:
quit()方法用於結束瀏覽器的操作。
就這樣,我們成功打開了第一個網頁!這是邁向世界控制...呃...我想說,邁向自動化的重要一步!
2. 導航與標籤頁操作
僅僅打開頁面是不夠的。有時我們需要在頁面之間移動,甚至打開多個標籤頁。想像一下,你是一個旅行者,可以瞬間在不同地方之間傳送。用 Selenium 你也可以做到這一點。
頁面之間的切換
從一個頁面跳轉到另一個頁面,就像打開一個頁面一樣簡單:
# 跳轉到另一個頁面
driver.get('https://www.example.org')
# 使用 back() 方法返回上一頁
driver.back()
# 使用 forward() 方法前往下一頁
driver.forward()
標籤頁操作
那麼,如何打開新標籤頁呢?這就像在不同城市的圖書館裡攜帶筆記本電腦一樣!
# 打開一個新標籤頁並切換過去
driver.execute_script("window.open('https://www.example.com', '_blank');")
driver.switch_to.window(driver.window_handles[1])
# 返回到第一個標籤頁
driver.switch_to.window(driver.window_handles[0])
解釋:
-
execute_script(): 用於在瀏覽器中執行 JavaScript 代碼。在這裡,我們用它打開了一個新標籤頁。 -
switch_to.window(): 這個方法用於在標籤頁之間切換。我們使用window_handles獲得所有打開的標籤頁的列表。
3. 與網頁互動
現在我們已經學會了打開和導航頁面,讓我們來進一步學習如何與它們交互——像一個真正的程序員一樣!這就像學會與每個網頁共舞,並且可以自信地展現你的技巧。
交互介面
看看這個例子,學習如何與頁面上的元素進行交互。例如,查找一個文本框並輸入文字:
# 根據名稱查找元素
search_box = driver.find_element_by_name('q')
# 在找到的文本框中輸入文字
search_box.send_keys('Selenium Python')
# 查找搜索按鈕並點擊
submit_button = driver.find_element_by_name('btnK')
submit_button.click()
解釋:
-
find_element_by_name(): 用於根據名稱查找元素。在這裡,我們在頁面上定位搜索文本框。 -
send_keys(): 用來向找到的元素中輸入文字。 -
click(): 模擬點擊一個元素,比如按鈕。
其他方法
還有很多方法可以用於更複雜的與頁面元素的交互。想更深入了解,可以查看 Selenium 官方文檔。這裡我們僅介紹幾個常用的:
-
find_element_by_id(): 根據 ID 查找元素。 -
find_element_by_class_name(): 根據類名查找元素。 -
find_element_by_css_selector(): 使用 CSS 選擇器查找元素。
現在你可以像真正的網頁探險家一樣打開和探索網頁了!不要害怕嘗試新東西。俗話說:「犯錯是通往成功的階梯」,尤其是當你確保代碼安全且經過測試時!
常見錯誤
使用 Selenium 可能會讓人覺得像是在走雷區一樣,如果你不了解一些常見的陷阱。最常見的錯誤之一就是忘記結束瀏覽器會話,這可能導致瀏覽器進程卡在記憶體中。一定要在腳本的末尾使用 driver.quit()。
Selenium 的另一個常見「痛點」是網頁結構的變化。如果元素是通過選擇器找到的,而網站開發者改變了 HTML 的結構,那麼你的腳本可能會突然無法運行。這就像當你嘗試進入房間時,門被突然關上了一樣。寫靈活的代碼並定期更新它以適應網站變化是非常重要的。
GO TO FULL VERSION