zh648990 发表于 2021-11-12 12:07

selenium 隐藏 Chrome 爬虫特征实现模拟登录

本帖最后由 zh648990 于 2021-11-24 14:05 编辑

最典型的就是模拟淘宝登录,直接登录的话会有一个滑块验证,这个滑块不管怎么滑动都无法验证,因为淘宝识别到这个是爬虫,那怎么解决呢?
我在 github 找到一个脚本 已经完美实现模拟登录不会出现滑块验证了

https://github.com/kingname/stealth.min.js

关键代码如下
    # 浏览器配置对象
    options = webdriver.ChromeOptions()
    # 以开发者模式启动浏览器
    options.add_experimental_option('excludeSwitches', ['enable-automation'])
    # 屏蔽以开发者运行提示框
    # options.add_experimental_option('useAutomationExtension', False)
    # 屏蔽保存密码提示框
    prefs = {'credentials_enable_service': False, 'profile.password_manager_enabled': False}
    options.add_experimental_option('prefs', prefs)
    # chrome 88 或更高版本的反爬虫特征处理
    options.add_argument('--disable-blink-features=AutomationControlled')
    # 浏览器对象
    driver = webdriver.Chrome(options=options)
    # 读取脚本 下载 stealth.min.js 到本地
    with open('stealth.min.js', mode='r', encoding='utf-8') as f:
      string = f.read()
    # 移除 selenium 中的爬虫特征
    driver.execute_cdp_cmd('Page.addScriptToEvaluateOnNewDocument', {'source': string})

实现原理就是在访问网址前加载js脚本隐藏 window.navigator.webdriver 爬虫特征
检测方法是访问 https://bot.sannysoft.com/ 查看属性 WebDriver 是否为 missing (passed)
这是隐藏爬虫的


这是没隐藏的

DarkHC 发表于 2021-11-15 14:16

还有一个隐藏的webrtc IP检测
      preferences = {
            "webrtc.ip_handling_policy": "disable_non_proxied_udp",
            "webrtc.multiple_routes_enabled": False,
            "webrtc.nonproxied_udp_enabled": False
      }
      # 关闭webrtc 避免找到真实IP地址
      options.add_experimental_option("prefs", preferences)

加不加这个配置访问https://browserleaks.com/ip, 里面的IP地址是不同的

ReLoading 发表于 2021-11-12 14:26

试试 playwright,更强大

wan1330 发表于 2021-11-12 12:54

感谢分享绕过滑块验证

dragonjelly 发表于 2021-11-12 13:56

这个可以啊,非常好,最近想试试淘宝,感谢分享{:301_993:}

Looco 发表于 2021-11-12 14:07

感谢分享

zh648990 发表于 2021-11-12 15:02

ReLoading 发表于 2021-11-12 14:26
试试 playwright,更强大

感谢老哥,我去试一试

zh648990 发表于 2021-11-15 14:23

DarkHC 发表于 2021-11-15 14:16
还有一个隐藏的webrtc IP检测
      preferences = {
            "webrtc.i ...

{:1_927:}可以可以,结合起来更完美了

pppin 发表于 2021-11-19 22:08

貌似不怎么行。

alexyui 发表于 2021-11-19 22:10

这个不错,收藏了以后用的到时候可以看看
页: [1] 2 3
查看完整版本: selenium 隐藏 Chrome 爬虫特征实现模拟登录