python - 如何使python selenium 不可检测
问题描述
我使用 selenium 在 python 中为 nike.com 网站制作了一个运动鞋机器人,我想知道是否
有什么方法可以让耐克无法检测到硒(所以他们不会注意到这是一个自动化软件,而不是背后的人)/至高无上,或任何其他网站?我听说过使用请求模式作为替代方案,
我看过一篇关于如何使硒无法检测的帖子,但大多数都是针对 java 的,而且方法非常复杂。
如果没有解决方案可以隐藏我正在使用 selenium webdriver (Chrome),那么在此类网站上不被发现的最简单方法是什么?
编辑:我想提一下,我在 python 中所知道的都是使用 selenium 和网络抓取,我从收到的答案中不太了解。我的问题很难解决,我需要知道这么多信息吗?或者,要了解这些事情需要多长时间?我期待一个答案,说要在我的代码中添加一些行,以便在打开 chrome 驱动程序时网站不会立即检测到我的机器人,但似乎不止于此。我什至不知道我应该在哪里修改和修改什么,我希望你能将我重定向到一个从 0 开始解决这个问题的链接。
解决方案
在未经许可的情况下抓取商业网站可能会给您带来法律麻烦。但是,如果您想从 nike.com 抓取数据,请在请求之间引入睡眠并等待以模仿网站上的人类行为。
2.网站还可以检测使用监视器大小抓取网站的机器人方式。所以我建议将视口更改为与默认大小不同的大小。
与其使用 python 和 selenium,不如使用 chrome 开发者工具或邮递员拦截器找到一个在 nike.com 中使用的 API,然后点击它以一次性获取数据(大多数情况下,使用 selenium 构建的工作流会由于片状而失败) PS 我与 Robotframework.org 无关,我只是喜欢他们构建机器人框架的方式
如果你仍然想在 python 中使用 selenium,快速构建业务流程以抓取数据并轻松维护,我建议使用 Robot Framework(带有 selenium 使用的内置关键字)
推荐阅读
- angular - Angular 即时搜索自定义小部件 - 类型“对象”上不存在属性“优化”
- javascript - 如何设置对象的初始状态 Redux 数组(图像信息列表)
- android - 如何使用 ViewPager、TabLayout 和 RecyclerView 并禁用 ViewPager 滑动?
- oracle - 错误 manager.SqlManager:错误执行语句:java.sql.SQLException:指定的 Oracle URL 无效
- javascript - 在页面中的多个表单上实施 reCAPTCHA v3
- apache - 是否可以使用 Apache 或 Nginx 重写 SOAP POST 请求主体?
- reactjs - 如何在关闭浏览器时将讨厌的 redux 状态清除到本地存储?
- redux-saga - 当 promise 解决时,redux-saga 调用不会产生。这里会发生什么?
- angular - 在 Angular 6 中使用默认属性输入
- django - 带有断线和重定向 url 的 Django 消息