Python selenium 调用 隐藏指纹特征

<Excerpt in index | 首页摘要>

Python selenium 调用 隐藏指纹特征

<The rest of contents | 余下全文>

为什么要隐藏?

很多网址做了大量的反扒行为 为了方便绕过这个检测 需要做指纹特征的隐藏

检测当前浏览器指纹特征 https://bot.sannysoft.com/

如何隐藏

核心就是隐藏浏览器navigator.webdriver 这个对象

然后加上User-Agent等尽可能像是普通用户

再加上一个小技巧, 如果目标网站提供Mobile版本 通常爬Mobile站会容易许多..

上代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument("incognito")
chrome_options.add_argument("disable-extensions")
chrome_options.add_argument("disable-infobars")
chrome_options.add_argument(
"user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/91.0.4472.124 Safari/537.36")
chrome_options.add_argument('--disable-blink-features=AutomationControlled')
chrome_options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_options.add_experimental_option('useAutomationExtension', False)

browser = webdriver.Chrome(executable_path="C:\\Users\\gloomy\\Downloads\\chromedriver_win32\\chromedriver.exe",
options=chrome_options)
browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
browser.set_window_size(400, 785)
titleEl = browser.find_element_by_class_name("title-content")
print(titleEl.text)
print(titleEl.text)
browser.close()