Q:Python Selenium套件如何在特定位置截圖?
建立app.py檔案,引用Python Selenium及Webdriver-Manager模組,如下範例:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
charts = driver.find_element_by_class_name('chartjs-render-monitor')
driver.get_screenshot_as_file("2330.png")
driver.close()
而要將畫面移動到圖表的位置,就需要引用Python Selenium套件的ActionChains模組,如下範例:
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.action_chains import ActionChains
driver = webdriver.Chrome(ChromeDriverManager().install())
charts = driver.find_element_by_class_name('chartjs-render-monitor')
driver.get_screenshot_as_file("2330.png")
driver.close()
接著,建立ActionChains物件,並且呼叫move_to_element()方法,傳入所要移動到的元素位置,如下範例:
driver = webdriver.Chrome(ChromeDriverManager().install())
charts = driver.find_element_by_class_name('chartjs-render-monitor')
action = ActionChains(driver)
action.move_to_element(charts).perform()
driver.get_screenshot_as_file("2330.png")
driver.close()
成功截取了我們所需要的每股盈餘網頁圖表。而如果要截取多家公司的話,透過迴圈的方式即可完成,如下範例:
stockNos = ['2330', '2303', '2408']
driver = webdriver.Chrome(ChromeDriverManager().install())
for stockNo in stockNos:
charts = driver.find_element_by_class_name('chartjs-render-monitor')
action = ActionChains(driver)
action.move_to_element(charts).perform()
driver.get_screenshot_as_file(f"{stockNo}.png")
driver.close()
)網站觀看更多精彩內容。