我正在尝试在python中使用硒chromedriver用于网站www.mouser.co.uk。但是,从第一枪开始就将其检测为机器人。
有人对此有解释吗?此后,我正在使用的代码:
options = Options()
options.add_argument("--start-maximized")
browser = webdriver.Chrome('chromedriver.exe',chrome_options=options)
wait = WebDriverWait(browser, 30)
browser.get('https://www.mouser.co.uk')
答案 0 :(得分:3)
我尝试使用某些 chrome.options 访问URL https://www.mouser.co.uk/
,但确实被检测到并被重定向到 Pardon Our Interruption 页面。
代码块:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
options = Options()
options.add_argument("start-maximized")
options.add_argument("disable-infobars")
options.add_argument("--disable-extensions")
driver = webdriver.Chrome(chrome_options=options, executable_path=r'C:\Utility\BrowserDrivers\chromedriver.exe')
driver.get("https://www.mouser.co.uk")
myElement = WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.XPATH, "//a[@id='1_lnkLeftFlag']")))
driver.execute_script("arguments[0].click();", myElement)
现在,在检查赦免我们的中断页面时,您会发现<body>
标签包含:
dist-GlobalHeader
dist-PageWrap
明确表明该网站受 Bot Management 服务提供商Distil Networks保护,并且检测到 ChromeDriver 导航并随后被阻止。
根据文章There Really Is Something About Distil.it...:
Distil通过观察站点行为并识别刮板特有的模式来保护站点免受自动内容抓取机器人的攻击。当Distil在一个站点上识别出一个恶意bot时,它将创建一个列入黑名单的行为配置文件,并将其部署到所有客户。像漫游器防火墙一样,Distil会检测模式并做出反应。
进一步
"One pattern with **Selenium** was automating the theft of Web content"
,Distil首席执行官拉米·埃塞伊(Rami Essai)在上周的一次采访中表示。"Even though they can create new bots, we figured out a way to identify Selenium the a tool they're using, so we're blocking Selenium no matter how many times they iterate on that bot. We're doing that now with Python and a lot of different technologies. Once we see a pattern emerge from one type of bot, then we work to reverse engineer the technology they use and identify it as malicious".
您可以在Can a website detect when you are using selenium with chromedriver?
中找到详细的讨论答案 1 :(得分:0)
尝试了此处建议的所有内容,但没有任何效果。仅此模块对我有用:
https://github.com/ultrafunkamsterdam/undetected-chromedriver
我用它来获得一个具有自动程序检测功能的网站。我尝试在以前的答案中使用所有建议的方法,但均未成功。该模块的使用非常简单,并在git repo本身中进行了描述。
侧面说明:版主已多次删除此帖子的先前版本,而恕我直言没有理由。我希望此编辑能够通过。祝你好运。