这是一个学习笔记
这里主要讲解如何反selenium检测,并且成功访问http://scxk.nmpa.gov.cn:81/xk/
仅给出初始代码,并没有完整的爬取,后面或许还有验证速率,鼠标轨迹等着你
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from selenium.webdriver.chrome.options import Options
url = "http://scxk.nmpa.gov.cn:81/xk/"
options = Options()
options.add_argument("--incognito") # 配置隐私模式
# option.add_argument('--headless') # 配置无界面
options.add_experimental_option('excludeSwitches', ['enable-automation'])
driver = webdriver.Chrome(executable_path=r'D:\chrome driver\chromedriver',options=options)
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator,'webdriver',{
get: () => undefined
})
"""
})
driver.get(url)
主要通过3个翻检测叠加,基本上可以解决大多数的selenium检测
1,隐私页面的开启
options.add_argument("--incognito") # 配置隐私模式
2.自动化控制的隐藏
options.add_experimental_option('excludeSwitches', ['enable-automation'])
3.属性特征的修改
driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator,'webdriver',{
get: () => undefined
})
"""
})
2 comments
2022.8.30知乎已失效
知乎过检测用这个好像没有问题吧