amazon-web-services - Selenium 在远程服务器(AWS EC2)上无法正常工作
问题描述
我正在使用带有 chrome 驱动程序的 Selenium 来抓取 facebook、insta 和 reddit。一切都在本地服务器上完美运行。但是,当我在 AWS EC2 上部署(使用 Elastic Beanstalk)时,它无法正常工作。Reddit 被抓取没有任何问题,但对于 facebook 和 instagram 它抛出:selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element
.
寻找这个问题的解决方案,我才知道这个错误发生在页面还没有完全加载的时候,我们尝试寻找页面的元素。(注意:我的本地机器上没有出现这个问题。)为了解决这个问题,我添加了等待延迟,以便页面可以完全加载。我尝试延迟最多 60 秒,但仍然无法加载页面。注意:此问题不会出现在第 1 页上,例如在 facebook 上:登录成功,搜索查询成功并显示结果,然后在尝试加载特定帖子时发生错误(页面加载失败),Instagram 上类似: 登录成功,但尝试访问搜索框元素时发生错误。
不知道为什么在通过 AWS 服务器访问时页面没有被加载,但在我的本地服务器上工作正常。reddit 被抓取的事实证实了问题不在于硒或其他环境依赖性......
如果有人对此问题有任何想法,请分享。谢谢。
解决方案
推荐阅读
- python - 将文件复制到另一个文件夹,避免在 python 中重复
- spring - 在编译/构建时从 Spring 代码生成 OpenAPI V3 规范
- apache-spark - 创建输出 UDT 的 PySpark UDF
- python - 由于 ruby 依赖关系,pip3 无法在 macOS 上安装 jq
- android - 隐藏状态栏时变黑
- r - ggplot中带有2个不相关变量的双轴条形图?
- java - 通过扫描仪和元素使用 java 进行网页抓取
- android - startDiscovery() 冻结我的应用程序(蓝牙应用程序)
- javascript - javascript 没有读取我的 if 语句
- python - 如何在熊猫列中取消列出具有一个值的列表?