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 协议,有没有大佬给个思路
多上代理。

