Python中Selenium的基本使用步驟
一、Selenium是什么?
Selenium是一個用于自動化瀏覽器操作的Python庫,常用于Web應用的測試和爬蟲等場景。
二、使用步驟
1.引入庫
安裝Selenium庫:使用pip命令安裝Selenium庫。可以運行以下命令進行安裝:
pip install selenium==4.5
目前有更高版本4.10,但是高版本有些參數被改了或舍棄了,使用起來要自己去找官方文檔,不方便。而且過高的Selenium版本和Chrome瀏覽器版本不兼容,之前用的selenium4.10打開chrome瀏覽器會秒退,后來將版本換為4.5就解決了 。
2.下載瀏覽器驅動
Selenium需要使用瀏覽器驅動來控制瀏覽器。這里以ChromeDriver為例,下載地址為:https://chromedriver.storage.googleapis.com/index.html
根據自己的Chrome版本進行下載
我的是版本到了115,但是ChromeDriver目前只有114的,選最新的版本,目前沒遇見問題。
3.配置瀏覽器驅動
將下載的chromedriver.exe
文件放置在與你的Python腳本相同的目錄下
并將瀏覽器驅動添加到系統(tǒng)的環(huán)境變量中,或將其路徑配置為Selenium的WebDriver對象的參 數,在計算機上搜索高級系統(tǒng)設置->環(huán)境變量->path->新建->復制路徑->確定。
4.創(chuàng)建WebDriver對象
使用Selenium的WebDriver對象來控制瀏覽器。根據使用的瀏覽器類型和驅動的配置,創(chuàng)建對應 的WebDriver對象。
from selenium import webdriver # 創(chuàng)建Chrome瀏覽器的WebDriver對象 driver = webdriver.Chrome()
webdriver.Chrome
的常用參數
4.1.options
一個Options
對象,用于配置Chrome瀏覽器的選項。你可以使用該對象來設置瀏覽器窗口大小、啟用/禁用瀏覽器的擴展程序、設置用戶代理等等。
from selenium.webdriver.chrome.options import Options options = Options() options.add_argument('--start-maximized') # 最大化窗口 options.add_argument('--disable-extensions') # 禁用擴展程序 driver = webdriver.Chrome(options=options)
4.2.service
一個Service
對象,用于配置和啟動ChromeDriver服務。如果沒有顯式指定,它將搜索系統(tǒng)的PATH
環(huán)境變量來找到ChromeDriver服務。
from selenium.webdriver.chrome.service import Service service = Service('chromedriver.exe') driver = webdriver.Chrome(service=service)
4.3.desired_capabilities
一個字典,用于設置WebDriver的所需能力。你可以使用該字典來設置瀏覽器的版本、操作系統(tǒng)、瀏覽器名稱等等。
caps = {'browserName': 'chrome', 'version': '', 'platform': 'ANY'} driver = webdriver.Chrome(desired_capabilities=caps)
4.4.executable_path
指定Chrome驅動的路徑。如果沒有顯式指定,它將搜索系統(tǒng)的PATH
環(huán)境變量來找到Chrome驅動程序。貌似被棄用了,我使用的時候報出警告了,用第二個service替換就行了。
5.WebDriver的屬性
# 打開指定的網頁 driver.get("https://www.baidu.com") #獲取當前頁面的URL current_url = driver.current_url #獲取當前頁面的標題 title = driver.title #獲取當前頁面的源代碼 page_source = driver.page_source #獲取當前打開的所有窗口的句柄 window_handles = driver.window_handles #獲取當前窗口的句柄 current_window_handle = driver.current_window_handle #獲取當前WebDriver的所需能力 desired_capabilities = driver.desired_capabilities #獲取當前WebDriver的能力 capabilities = driver.capabilities
6.元素定位
Selenium提供了多種元素定位的方法,可以根據元素的屬性、文本、位置等進行定位。以下是一些常用的元素定位方法:
舊版的selenium使用方法:
#通過id定位元素 element = driver.find_element_by_id("element-id") #通過class name定位元素 element = driver.find_element_by_class_name("element-class") #通過name屬性定位元素 element = driver.find_element_by_name("element-name") #通過tag name定位元素 element = driver.find_element_by_tag_name("element-tag") #通過鏈接文本定位元素 element = driver.find_element_by_link_text("link-text") #通過部分鏈接文本定位元素 element = driver.find_element_by_partial_link_text("partial-link-text") #通過CSS選擇器定位元素 element = driver.find_element_by_css_selector("css-selector") #通過XPath表達式定位元素 element = driver.find_element_by_xpath("xpath-expression")
新版的selenium有兩種定位方式,element = driver.find_element("id", "element-id")和element = driver.find_element(By.ID,"su") 這兩種方式本質上是等效的,都是通過元素的id屬性進行定位。第一種方式中,使用了字符串來表示定位策略,而第二種方式中,使用了By類來表示定位策略。By
類是Selenium提供的一組常用的定位策略,用于更清晰地表示定位方式。通過使用By
類,可以讓代碼更易讀且具備更好的可維護性。
from selenium.webdriver.common.by import By # 第一種方式:使用定位策略和定位值定位元素 element1 = driver.find_element("id", "element-id") element1 = driver.find_element("name", "element-name") # 第二種方式:使用By類結合定位策略定位元素 element2 = driver.find_element(By.ID, "element-id") element2 = driver.find_element(By.NAME, "element-name")
其余舊版的定位方法都可用轉換成這兩種方式
三.打開百度網頁的簡單示例
該示例演示了如何獲取百度頁面的源碼,如何在百度搜索框里輸入信息并點擊查找 。
from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By import time #chromedriver.exe要與該python文件放在同一個目錄下 service = Service("chromedriver.exe") options = Options() #初始窗口最大化 options.add_argument('--start-maximized') driver = webdriver.Chrome(service=service, options=options) url = "https://www.baidu.com" driver.get(url) #獲取網頁的源碼 content = driver.page_source print(content) #根據id定位到百度搜索的輸入框 input = driver.find_element(By.ID,"kw") #在輸入框中輸入Python input.send_keys('Python') time.sleep(2) #根據id定位到百度一下的按鈕 button = driver.find_element(By.ID,"su") #按鈕點擊一下 button.click() time.sleep(2) #執(zhí)行JavaScript腳本,該腳本表示鼠標滾輪滑動到距離頂部100000,即滑動到底部 js_button = 'document.documentElement.scrollTop=100000' driver.execute_script(js_button) time.sleep(2) #根據Xpath表達式定位下一頁的按鈕,并點擊一下 next_page = driver.find_element(By.XPATH,"http://a[@class='n']") next_page.click() time.sleep(2.1) #網頁后退 driver.back() time.sleep(1.5) #網頁前進 driver.forward() time.sleep(1.8) #網頁關閉 driver.quit()
總結
到此這篇關于Python中Selenium的基本使用的文章就介紹到這了,更多相關Python Selenium使用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
用Python實現定時備份Mongodb數據并上傳到FTP服務器
這篇文章主要介紹了用Python實現定時備份Mongodb數據并上傳到FTP服務器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-01-01安裝pycurl報錯Could not run curl-config: &ap
這篇文章主要為大家介紹了安裝pycurl報錯Could not run curl-config: 'curl-config'解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-12-12