from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from fake_useragent import UserAgent
# 啟動(dòng) Chrome 瀏覽器
chrome_options = webdriver.ChromeOptions()
chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
# chrome_options.add_argument("executable_path='C:\\Users\\wangkejun\\Downloads\\chromedriver-win64\\chromedriver.exe'")
chrome_options.add_argument('--disable-gpu') # 禁用 GPU 加速
chrome_options.add_argument('--disable-images') # 禁用圖片加載
chrome_options.add_argument('--no-sandbox') # 無(wú)沙盒模式
chrome_options.add_argument('disable-blink-features=AutomationControlled') #去掉webdriver痕跡
chrome_options.add_argument('--disable-javascript') # 禁用JavaScript
chrome_options.add_argument('-ignore-certificate-errors')#忽略證書(shū)錯(cuò)誤
chrome_options.add_argument('-ignore -ssl-errors') #忽略證書(shū)錯(cuò)誤
chrome_options.add_argument('window-size=1377x768')#指定瀏覽器分辨率
chrome_options.add_argument('disable-infobars')# 隱藏Chrome正在受到自動(dòng)軟件的控制
chrome_options.add_experimental_option('excludeSwitches', ['enable-automation'])#設(shè)置開(kāi)發(fā)者模式啟動(dòng),該模式下webdriver屬性為正常值
# 生成隨機(jī)的 User-Agent
user_agent = UserAgent().random
chrome_options.add_argument(f'user-agent="{user_agent}"')
driver = webdriver.Chrome(options=chrome_options)
# 執(zhí)行 CDP 命令來(lái)修改 navigator.webdriver
script = """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
-
chrome_options = webdriver.ChromeOptions()
- 創(chuàng)建 Chrome 瀏覽器的選項(xiàng)對(duì)象。 -
chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"
- 指定 Chrome 瀏覽器的二進(jìn)制文件路徑。 -
chrome_options.add_argument('--disable-gpu')
- 禁用 GPU 加速,可以提高腳本在瀏覽器中的穩(wěn)定性和性能。 -
chrome_options.add_argument('--disable-images')
- 禁用圖片加載,可以加快頁(yè)面加載速度。 -
chrome_options.add_argument('--no-sandbox')
- 在無(wú)沙盒模式下運(yùn)行 Chrome 瀏覽器,可以解決某些特定環(huán)境下的問(wèn)題。 -
user_agent = UserAgent().random
- 生成隨機(jī)的 User-Agent,用于偽裝瀏覽器身份。 -
chrome_options.add_argument(f'user-agent="{user_agent}"')
- 將生成的隨機(jī) User-Agent 添加到 Chrome 瀏覽器選項(xiàng)中。 -
driver = webdriver.Chrome(options=chrome_options)
- 使用指定的選項(xiàng)啟動(dòng) Chrome 瀏覽器。 -
script = """ ... """
- 定義一個(gè) JavaScript 腳本,用于修改navigator.webdriver
屬性。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-707830.html -
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})
- 使用 Chrome DevTools Protocol (CDP) 的命令,在每個(gè)新頁(yè)面加載時(shí)執(zhí)行指定的 JavaScript 腳本,從而修改navigator.webdriver
屬性。這可以用于繞過(guò)一些反爬蟲(chóng)機(jī)制。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-707830.html
到了這里,關(guān)于selenium自動(dòng)化chrome的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!