整站优化包年,国外大型门户网站,做网站什么价位,多城市分站网站建设Selenium是一个流行的自动化网页测试工具#xff0c;可以通过模拟用户在Chrome浏览器中的操作来完成网站的测试。然而#xff0c;有些网站会检测浏览器是否由Selenium驱动#xff0c;如果是#xff0c;就会返回错误的结果或拒绝访问。为了避免这种情况#xff0c;我们需要…Selenium是一个流行的自动化网页测试工具可以通过模拟用户在Chrome浏览器中的操作来完成网站的测试。然而有些网站会检测浏览器是否由Selenium驱动如果是就会返回错误的结果或拒绝访问。为了避免这种情况我们需要隐藏Selenium的特征让网站认为我们是正常的用户。
以下是三种常见的隐藏Selenium特征的方法
1、修改navigator.webdriver标志navigator.webdriver是一个浏览器提供的属性用于表示浏览器是否由webdriver控制。默认情况下如果浏览器由Selenium驱动这个标志的值为true否则为false。我们可以通过execute_cdp_cmd命令来执行Google Chrome DevTools命令从而修改这个标志的值为false或者undefined以隐藏Selenium的特征。
2、改变user-agentuser-agent是一个浏览器发送给网站的字符串用于表示浏览器的类型和版本。有些网站会根据user-agent来判断用户的设备和操作系统如果发现user-agent不符合正常的范围就会怀疑是Selenium驱动的浏览器。我们可以通过execute_cdp_cmd命令来设置Network.setUserAgentOverride参数从而改变user-agent为任意我们想要的值以隐藏Selenium的特征。
3、排除或关闭一些Selenium相关的开关enable-automation和useAutomationExtension是两个常见的Selenium相关开关它们会影响浏览器的行为和外观比如在浏览器窗口上显示“Chrome正在受到自动软件的控制”的提示。我们可以通过Chrome选项来添加或删除这些开关从而让浏览器看起来更像正常的浏览器以隐藏Selenium的特征。
综上所述隐藏Selenium特征是实现自动化网页测试的关键。通过以上三种方法我们可以让浏览器看起来更像正常的用户避免被网站检测到并拒绝访问。综合上面的几种selenium特征隐藏方式以采集大众点评的评论为案例结合实际爬虫采集过程中需要使用的代理IP池提供如下demo from selenium import webdriverfrom selenium.webdriver.common.proxy import Proxy, ProxyType# 亿牛云爬虫加强版代理IP 地址、端口号、用户名和密码proxy_address www.16yun.cnproxy_port 3100proxy_username 16YUNproxy_password 16IP# 设置Chrome选项包括隐藏Selenium特征、设置代理IP和排除或关闭一些Selenium相关开关options webdriver.ChromeOptions()options.add_argument(--disable-blink-featuresAutomationControlled)options.add_argument(--disable-extensions)options.add_argument(--disable-gpu)options.add_argument(--disable-infobars)options.add_argument(--disable-notifications)options.add_argument(--disable-popup-blocking)options.add_argument(--disable-web-security)options.add_argument(--ignore-certificate-errors)options.add_argument(--no-sandbox)options.add_argument(--start-maximized)options.add_argument(--user-data-dir/dev/null)options.add_argument(--proxy-server{}.format(proxy_address : proxy_port))options.add_argument(--proxy-auth{}:{}.format(proxy_username, proxy_password))options.add_experimental_option(excludeSwitches, [enable-automation, useAutomationExtension])# 初始化Chrome浏览器并使用上述选项driver webdriver.Chrome(optionsoptions)# 隐藏navigator.webdriver标志将其值修改为false或undefineddriver.execute_cdp_cmd(Page.addScriptToEvaluateOnNewDocument, {source: Object.defineProperty(navigator, webdriver, {get: () undefined})})# 设置user-agent改变user-agent的值user_agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36driver.execute_cdp_cmd(Network.setUserAgentOverride, {userAgent: user_agent})# 访问大众点评中商品的评论页面url https://www.dianping.com/shop/1234567/review_alldriver.get(url)# 在此处添加其他代码来执行您想要的任务此代码将使用Chrome浏览器并在启动浏览器时使用选项隐藏Selenium特征、设置用户名和密码方式的代理IP和排除或关闭一些Selenium相关开关。然后使用execute_cdp_cmd命令来执行Google Chrome DevTools协议中的命令将navigator.webdriver标志的值修改为false或undefined。使用execute_cdp_cmd命令来设置Network.setUserAgentOverride参数将user-agent更改为指定的user-agent字符串。最后访问大众点评中商品的评论页面并在此处添加其他代码来执行您想要的任务。
最后感谢每一个认真阅读我文章的人礼尚往来总是要有的这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库虽然不是什么很值钱的东西如果你用得到的话可以直接拿走 这些资料对于【软件测试】的朋友来说应该是最全面最完整的备战仓库这个仓库也陪伴上万个测试工程师们走过最艰难的路程希望也能帮助到你