我正在尝试使用 python 和 selenium 创建一个脚本来自动执行 bestbuy.ca 的结帐过程。
我一直到达最后阶段,您可以单击以查看最终订单,但当我尝试单击到最后一步时,收到以下 403 禁止消息(如网络响应中所示)。
是否有服务器端检测到我正在使用硒并阻止我继续?
我如何隐藏正在使用硒的事实?
这些是我用于硒的选项:
options = Options()
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument("start-maximized")
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(options=options)
我目前在每个操作后有 10 秒的延迟(即打开页面、等待、单击“添加到购物车”、等待、单击“结账”、等待)
我已经实现了每次运行时使用的随机用户代理:
import fake_useragent
ua = UserAgent()
userAgent = ua.random
options.add_argument(f'user-agent={userAgent}')
我还根据中的评论修改了我的 chromedriver 二进制文件这个线程 https://stackoverflow.com/questions/33225947/can-a-website-detect-when-you-are-using-selenium-with-chromedriver
Error seen when proceeding to order review page:
经过过去几天的大量测试,以下是允许我绕过所面临的限制的选项。
-
修改了我的 chromedriver 中的 cdc_ 字符串 https://stackoverflow.com/questions/33225947/can-a-website-detect-when-you-are-using-selenium-with-chromedriver
-
Chrome 驱动程序选项:
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument("--disable-extensions")
options.add_experimental_option('useAutomationExtension', False)
options.add_experimental_option("excludeSwitches", ["enable-automation"])
chrome_driver = webdriver.Chrome(options=options)
-
将 webdriver 的 navigator 的属性值更改为 undefined:
chrome_driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
实施所有这三个功能后,我在浏览网站和购物车/结帐流程时不再遇到任何 403 错误。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)