【问题标题】:how can I make my python selenium project work on heroku如何让我的 python selenium 项目在 heroku 上运行
【发布时间】:2021-06-02 02:03:36
【问题描述】:

所以我有这个在本地完美运行的 selenium 项目,它只是一个从网站上抓取数据的脚本。我成功地将脚本部署到 heroku 中,但是当我尝试激活它时,它显示了这些错误。

它给出了一个错误,它无法找到它应该从网站上抓取的一些 xpath 元素。 这是它显示的错误

引发异常类(消息、屏幕、堆栈跟踪) selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{"method":"xpath","selector":"//button[@class='_cs_button _cs_button--sm _cs_button--positive _cs_m-down--none']"} (会话信息:headless chrome=91.0.4472.77)

之后我决定在代码尝试查找元素之前打印网站的源代码,因为我认为可能元素不存在所以它找不到它们,结果证明它的 js从网站收到的内容没有被激活,因此之后没有收到 html。

我几乎不明白为什么在 heroku 上激活脚本时不会激活从网站收到的 js

有人可以帮我解决这个问题

【问题讨论】:

  • 应该只是个警告?

标签: python selenium heroku web-scraping


【解决方案1】:

我猜你在 Heroku 实例中使用的 Python 版本是 >3.8,而本地版本不是。

在 Python 3.8 或更高版本中,现在在使用 is 比较整数或字符串文字时会引发语法警告。由于库试图将setting 与空字符串进行比较,因此会引发这样的错误。将调用脚本 firefox_profile.py 是因为 selenium 将检查您的脚本使用的浏览器版本,这不会导致您的脚本出现问题,因为这只是一个 警告 而不是 异常.

要解决此问题,您可以在 Heroku 实例中降级 Python 版本,或在 selenium 存储库中提交 PR。


更新:

由于我刚刚查看了官方存储库,该问题应该在最新版本中修复,您可以找到提交here。您可以更新到最新版本的库来修复它。

【讨论】:

    猜你喜欢
    • 2019-06-12
    • 1970-01-01
    • 2017-04-24
    • 2014-02-08
    • 1970-01-01
    • 2019-08-08
    • 1970-01-01
    • 2017-11-08
    相关资源
    最近更新 更多