2023年2月13日 星期一

[Python]如何利用Selenium模塊模擬瀏覽器操作網頁?

銜接<[Python]初探爬蟲(scrapy)>的學習,在Python中,除了善用request安裝包抓取網頁資料之外,還可利用selenium安裝包模擬瀏覽器操作網頁,包含搜尋關鍵字和抓取網頁資料,得以實現機機器人流程自動化(RPA, Robotic process automation)的操作。

利用selenium操作網頁,除了安裝selenium安裝包之外,尚有幾個關鍵步驟,如下:

1.下載瀏覽器的驅動執行檔(webdriver),幾個常用瀏覽器的驅動執行檔下載資訊如下:

a. Firefox: https://github.com/mozilla/geckodriver/releases/

b. Chrome: https://sites.google.com/a/chromium.org/chromedriver/ 

c. IE: http://selenium-release.storage.googleapis.com/index.html


2.下載後的webdriver.exe需分別置放在Python路徑資料夾和對應的瀏覽器資料夾中,本文以Chrome為例,分別放在下列路徑中。

  a. C:\Program Files (x86)\Anaconda3

  b.C:\Program Files (x86)\Google\Chrome\Application


3.接著,即可利用程式碼進行網頁的操作,本文以京東商城為例。

  a.導入selenium安裝包和對應常用的鍵盤按鍵(keys),並輸入網址。

from selenium import webdriver
from selenium.webdriver.common import keys
import time
# Open URL
browser = webdriver.Chrome()
url = 'https://www.jd.com/'
browser.get(url)
time.sleep(1)


   b.下列指令將使京東商城的搜索欄自動輸入"咖啡機",並執行enter鍵,進行搜索。另外,亦可利用"page_source"取得該網頁資料。

#搜索關鍵字
kword='咖啡機'
#搜尋關鍵字
browser.find_element_by_id('key').send_keys(kword) #自动輸入關鍵字
browser.find_element_by_id('key').send_keys(keys.Keys.ENTER) #輸入Enter(由key執行enter)
## 取得網頁碼資料
print(browser.page_source)


沒有留言:

張貼留言