我正在运行一个Python脚本来抓取一个网站。它使用Imperva来检测自动脚本在它的网页中爬行。一旦我运行脚本,Imperva就阻止了我的IP访问该站点。我确实读过有人建议在脚本中加入一个time.sleep(random.randint(a,b)) (尝试模仿人类行为),但是它没有起作用,或者它只是作为一个独立的方法不起作用。如果他们检测到的是铬驱动器本身,那么我想这是不可能避免的。有没有人可以在我的脚本中包含一些实用的建议来绕过这个问题呢?提前谢谢。
发布于 2022-05-23 01:55:55
引言
有许多不同的组件,需要添加到一个网络刮刀,使它无法检测。我建议使用下面的代码来测试当前检测级别的()
driver.get("https://bot.sannysoft.com/")更有可能的是,会在上一举失败,幸运的是,很容易配置一个刮板,它将通过所有这些测试,并且完全无法检测到。
硒隐身
硒隐身是一个用于避免检测的python包。很简单..。
pip install selenium-stealth并遵循以下配置:
stealth(driver,
user_agent: 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36(KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36',
languages=["en-US", "en"],
vendor="Google Inc.",
platform="Win32",
webgl_vendor="Intel Inc.",
renderer="Intel Iris OpenGL Engine",
fix_hairline=True,
)您的web刮刀应该通过所有的测试,现在尝试在Imperva站点上实现这个解决方案。
更多信息
如果您仍然被阻塞,我建议查看随机用户代理库,在selenium-隐形配置的"user_agent“变量中循环用户代理。否则,您可以支付代理提供程序的费用,以完全掩饰您的IP。尽管要记住,代理网络目前没有的硒配置。
关于代理网络硒配置的信息: Python Selenium代理网络
关于云中硒可探测性的信息: Python更改WebGL供应商/渲染器用于无法检测的无头刮板
https://stackoverflow.com/questions/72339741
复制相似问题