Python中如何去除selenium+chrome特征码以绕过反爬?

现有软件是 python3.4+selenium+谷歌浏览器,主要模拟人工上网搜索关键字,翻页,点击拖拉等,去掉 selenium+chrome 特征码过百度的反爬,懂淘宝反爬,这类反爬的先找技术远程办公,可兼职,需要找一个长期合作的。Python中如何去除selenium+chrome特征码以绕过反爬?

4 回复
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
import time

def get_stealth_driver():
    chrome_options = Options()
    
    # 基础反检测设置
    chrome_options.add_argument('--disable-blink-features=AutomationControlled')
    chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
    chrome_options.add_experimental_option('useAutomationExtension', False)
    
    # 添加常见用户代理
    chrome_options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36')
    
    # 禁用自动化特征
    chrome_options.add_argument('--disable-dev-shm-usage')
    chrome_options.add_argument('--no-sandbox')
    
    # 创建driver
    driver = webdriver.Chrome(options=chrome_options)
    
    # 执行CDP命令移除webdriver属性
    driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {
        'source': '''
            Object.defineProperty(navigator, 'webdriver', {
                get: () => undefined
            });
            Object.defineProperty(navigator, 'plugins', {
                get: () => [1, 2, 3, 4, 5]
            });
            Object.defineProperty(navigator, 'languages', {
                get: () => ['zh-CN', 'zh', 'en']
            });
        '''
    })
    
    return driver

# 使用示例
if __name__ == "__main__":
    driver = get_stealth_driver()
    try:
        driver.get("https://bot.sannysoft.com/")  # 测试网站
        time.sleep(3)
        print("页面标题:", driver.title)
    finally:
        driver.quit()

核心就是通过CDP命令覆盖navigator.webdriver属性,配合chrome选项禁用自动化标识。不过现在很多网站还会检测其他特征,比如插件数量、屏幕分辨率、时区等,需要根据具体网站调整。

简单说就是伪装成真人浏览器。

selenium 效率太慢了吧,另外问一下,手机端淘宝的评论是 tcp 协议,有没有大佬给个思路

多上代理。

回到顶部