1. 自動啟動chrome驅動(已經安裝了Selenium庫和Chrome驅動)
要使用Selenium自動跟隨自帶的Chrome驅動,你需要首先確保你已經安裝了Selenium庫和Chrome驅動。然后,你可以按照以下步驟進行操作:
- 導入必要的庫:
from selenium import webdriver
- 創建一個Chrome WebDriver實例:
driver = webdriver.Chrome()
這將自動根據系統中安裝的Chrome瀏覽器版本使用正確的驅動程序。
- 使用WebDriver執行自動化操作,例如訪問網頁、點擊元素等:
driver.get("https://www.example.com") # 訪問一個網頁示例# 執行其他自動化操作...
通過調用get()
方法,你可以讓WebDriver打開指定的URL,并加載對應的頁面。
- 最后,關閉WebDriver:
driver.quit()
這將關閉瀏覽器并結束WebDriver的進程。
下面是一個完整示例代碼:
from selenium import webdriver# 創建Chrome WebDriver實例
driver = webdriver.Chrome()# 訪問一個網頁示例
driver.get("https://www.example.com")# 執行其他自動化操作...# 關閉WebDriver
driver.quit()
你可以根據自己的需求,在執行自動化操作之前和之后,添加相應的代碼來修改或擴展操作。
請注意,為了正常運行,你需要安裝Selenium庫和與你的Chrome瀏覽器版本匹配的Chrome驅動程序。確保將Chrome驅動程序所在的目錄添加到系統的環境變量中,或者在代碼中指定驅動程序的路徑。
2. 手動啟動chrome驅動
如果你想手動指定使用瀏覽器的驅動程序,可以按照以下步驟操作:
-
首先,下載適用于你的Chrome瀏覽器版本的Chrome驅動程序。你可以從以下鏈接下載對應的驅動程序:https://sites.google.com/a/chromium.org/chromedriver/downloads
-
本地鏡像下載驅動地址:https://registry.npmmirror.com/binary.html?path=chromedriver/
-
將下載的驅動程序解壓縮到一個你希望存放驅動程序的目錄中。
-
在代碼中指定使用特定的驅動程序路徑,例如:
from selenium import webdriver# 指定Chrome驅動程序的路徑
driver_path = "path/to/chromedriver"# 創建Chrome WebDriver實例,并指定驅動程序路徑
driver = webdriver.Chrome(executable_path=driver_path)# 執行自動化操作...
將 path/to/chromedriver
替換為你實際的驅動程序路徑。
- 執行其他自動化操作,如訪問網頁、點擊元素等:
driver.get("https://www.example.com") # 訪問一個網頁示例# 執行其他自動化操作...
- 最后,關閉WebDriver:
driver.quit()
這樣,你就可以手動指定使用瀏覽器的驅動程序來進行自動化操作了。
請確保下載的驅動程序與你的Chrome瀏覽器版本匹配,以確保正常運行。
3. 實例
“”"
下載qq到放到指定文件夾
“”"
一、前提
注意:selenium的使用方式和版本有很大的關系,例如selenium版本為3.141.0,會有
find_element_by_id()/ find_element_by_name()/find_element_by_class__name()等八大元素定位的方法
本次演示的selenium版本為4.8.3,故沒有上述八大元素的寫法,通用寫法為:
先導包 from selenium.webdriver.common.by import By
再定位 browser.find_element(By.ID,'kw')/browser.find_element(By.NAME,'wd') 這樣的寫法
二、操作步驟
1.裝包
需要用到的第三方包urllib3、selenium,安裝方式例如:pip install selenium
如果需要特定版本,可以鏡像安裝:
pip install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
3.1驅動安裝
3.1.1自動安裝(使用用外網可以訪問的場景)
import time
from selenium import webdriver
# 需要用到第三方庫webdriver_manager
from webdriver_manager.chrome import ChromeDriverManagerbrowser = webdriver.Chrome(ChromeDriverManager().install())
# 打開網址
browser.get('https://cn.bing.com')
time.sleep(3)
3.1.2 手動安裝(適用于無法連接公網時)
import timefrom selenium import webdriver
# 定位元素用
from selenium.webdriver.common.by import By
# 模擬回車用
from selenium.webdriver.common.keys import Keys
# 驅動的下載位置:https://registry.npmmirror.com/binary.html?path=chromedriver/
# 下載什么版本的驅動呢?首先查到你瀏覽器的版本,下載的驅動應為跟你瀏覽器版本一致或者最接近的版本,在上面鏈接中通常選擇32位的,例如"chromedriver_win32.zip"
# 驅動位置的寫法,也和selenium的版本有很大關系
browser = webdriver.Chrome(executable_path=r"D:chromedriver.exe")
# 定義下載的位置
#設置1
options = webdriver.ChromeOptions()
# 更改下載路徑
# 如果該路徑不存在會自動創建
prefs = {"download.default_directory":'C:\Download_test','download.prompt_for_download':False}新加一條,不加載圖片prefs = {"download.default_directory":'C:\Download_test','download.prompt_for_download':False,"profile.managed_default_content_settings.images":2}設置2,將創建的下載部分的設置添加到option中
options.add_experimental_option('prefs',prefs)
# 打開網址
# browser.get('https://cn.bing.com/')
# 強制等待3秒
# 最大窗口
browser.maximize_window()
time.sleep(3)browser.get('https://im.qq.com/pcqq')
驅動下載位置:https://registry.npmmirror.com/binary.html?path=chromedriver/
4.實戰技巧
下面三行代碼解決:下載過程中出現"此類型的文件可能會損害您的計算機,請問您是選擇保留還是舍棄"
browser.command_executor._commands["send_command"] = ("POST", '/session/$sessionId/chromium/send_command')
params = {'cmd': 'Page.setDownloadBehavior', 'params': {'behavior': 'allow', 'downloadPath': "C:\Download_test"}}
command_result = browser.execute("send_command", params)
browser.find_element(By.CLASS_NAME,'download').click()
向下滑動(方法一)
js_button = "window.scrollTo(0,1000) "
browser.execute_script(js_button)
time.sleep(3)
向下滑動(方法二)元素聚焦
time.sleep(3)
try:target = browser.find_element(By.XPATH,'//*[@id="app"]/div[4]/div[2]/div[1]/h3')browser.execute_script("arguments[0].scrollIntoView();",target)
except:passtime.sleep(100)
browser.quit()
補充
“”"
使用selenium4的痛點:
1.網上資料較少,很多selenium3方法不可用
2.selenium3的下滑頁面方法失效
“”"