May 10, 2019

用 python 玩網站爬蟲:selenium

自動化測試的好夥伴


文 / 西打藍 Siddharam

前言


週五晚上突然想玩玩 selenium,它能夠自動幫你跑瀏覽器事件,例如最基本的點擊、輸入,選擇依據是 html 元素。大家一起在夜晚入門這套工具吧。

環境


先安裝 python,用習慣的編輯器打開一個資料夾,並新增 test.py 檔案。建議資料夾「不要」命名為 selenium。

檢查安裝版本:
python -V

安裝 selenium:
pip install selenium

安裝 Firefox web driver
安裝 Chrome web driver

接著,把下載的兩份檔案,放在 python 資料夾裡,例如我的位置是在:

C:\Users\User\AppData\Local\Programs\Python\Python36

有了上述做法,才能驅動瀏覽器運行。下一節就要進入實作了。

實作指令



# 打開 google 瀏覽器後,根據 html name 找到 q
# 輸入"氣象局"後提交表單,並點擊「交通部中央氣象局」

from selenium import webdriver
from time import sleep

# 設定為 Chrome 瀏覽器
driver = webdriver.Chrome()
# 前往指定 URL
driver.get("https://www.google.com")

# 瀏覽器位置
driver.set_window_position(0,0) 
# 瀏覽器大小
driver.set_window_size(700,700) 
# 停止 3 秒鐘
time.sleep(3)
# 視窗最大化
driver.maximize_window()

# 找到輸入框
element = driver.find_element_by_name("q");
# 輸入內容
element.send_keys("氣象局");
# 提交表單
element.submit();

# 點擊頁面上"交通部中央氣象局"的連結
driver.find_element_by_link_text('交通部中央氣象局').click() 

# 印出標題
print(driver.title)

# 關閉視窗
sleep(3)
driver.close()

WEBDRIVER 提供許多定位方法:

id
name
class name
link text
partial link text
tag name
xpath
css selector


以上為 selenium 的入門,這裡 有詳細的使用說明。

後記


selenium 用起來,很像以前玩遊戲的自動化設定,之後如果有深入使用,會在補一篇的。




閱讀量




技術文章與合作


寫這些技術分享文,筆者是沒有額外收入的,但每年還是要付域名費用,如果你喜歡我的文章,歡迎 自由贊助 唷!也期待收到你的 回饋

有網站設計(UI/UX)、平面設計、網站工程外包需求,皆可以來信詢問,在 關於下方 有參考作品。