首页 > 解决方案 > 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 被抓取的事实证实了问题不在于硒或其他环境依赖性......

如果有人对此问题有任何想法,请分享。谢谢。

标签: amazon-web-servicesweb-scrapingamazon-ec2selenium-chromedriveramazon-elastic-beanstalk

解决方案


推荐阅读