51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 871|回复: 0
打印 上一主题 下一主题

[转贴] Selenium自动化程序被检测为爬虫,怎么屏蔽和绕过

[复制链接]
  • TA的每日心情
    擦汗
    11 小时前
  • 签到天数: 1048 天

    连续签到: 1 天

    [LV.10]测试总司令

    跳转到指定楼层
    1#
    发表于 2022-4-18 09:35:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    Selenium 操作被屏蔽
      使用selenium自动化网页时,有一定的概率会被目标网站识别,一旦被检测到,目标网站会拦截该客户端做出的网页操作。
      比如淘宝和大众点评的登录页,当手工打开浏览器,输入用户名和密码时,是能正常进入首页的,但是如果是通过selenium打开, 会直接提示验证失败,点击框体重试。

    本文介绍一种办法,不需要修改浏览器属性,不需要注入JavaScript脚本,也能轻松绕过网站检测。
      Selenium为何会被检测
      每一个浏览器访问网站时,都会带上特定的指纹特征,网站会解析这些特征,从而判断这次访问是不是自动化程序。
      一个最广为人知的特征是window.navigator.webdriver,该特征直接标明此浏览器是webdriver程序。当一个浏览器通过selenium启动后,在开发者工具中输入这个属性,会发现被标为 true, 而手工打开的浏览器是 false。

      实际上,浏览器被检测为webdriver程序的特征并不止这一个,这意味着,就算你通过修改属性,也不一定能绕过网站的检测。
      我们可以通过 sannysoft 来检测浏览器指纹,如果浏览器是通过selenium等自动化程序打开的,访问这个网址后会有很多特征暴露这些指纹,这些特征的值和手工打开后的值是不一样的,因此可以很轻易被别人检测出来。


    有人也试图不用selenium,换成puppeter和playwright这样的自动化工具,但是结局都是一样的。
      Selenium避免被检测方法
      浏览器在启动时就会带上指纹特征,如果使用自动化程序启动时已经被标记,那为什么不直接用手工启动,然后用Selenium连接已经启动的浏览器呢?
      那手工打开浏览器要做什么操作才能让Selenium连接呢?Selenium又是怎样连接手工打开的浏览器呢?
      概括起来:
      1、打开浏览器时添加以下参数:
    1.  --remote-debugging-port=9222 --user-data-dir="C:\\selenium\\ChromeProfile"
    复制代码
    2、selenium中设置浏览器选项,通过上面设置的 9222端口连接浏览器:
    1. from selenium.webdriver.chrome.options import Options
    2.   chrome_options = Options()
    3.   chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")
    4.   driver = webdriver.Chrome(options=chrome_options)
    复制代码
    通过 subprocess 运行浏览器
      当然,做自动化程序一般不会手工点击图标来打开浏览器,我们可以用命令行启动浏览器,然后再用 selenium 连接。
    1.  import subprocess
    2.   cmd = '"C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe" ' \\
    3.   '--remote-debugging-port=9222 ' \\
    4.   '--user-data-dir="C:\\selenium\\ChromeProfile"'
    5.   subprocess.run(cmd)
    复制代码






    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?(注-册)加入51Testing

    x
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏
    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-18 20:30 , Processed in 0.063932 second(s), 24 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表