嘿,伙计们,我试着把我的刮伤项目部署到Heroku上,一切都部署好了。但是当我试图执行heroku运行抓取抓取爬虫名时,我会得到错误。
RuntimeError:在您的系统路径中找不到firefox。请指定firefox二进制位置或安装firefox。我已经将这些行添加到/etc/path中。
/Applications
/Applications/Firefox.app
/Applications/Firefox.app/Contents/MacOS/firefox-bin
/Applications/Firefox.app/Contents/MacOS/firefox
在将它们添加到etc/path之后,我只需输入firefox就可以从终端运行firefox,firefox就会打开。但是当我试图重新运行heroku运行抓取爬虫名时,我会得到相同的错误。
self.driver = webdriver.Firefox()
self.driver.implicitly_wait(10)
在我的脚本里打开网页浏览器。
如果im位于我创建的heroku应用程序的同一个目录中,并且运行刮刮爬虫名称,那么一切都很好,我得到了我的结果,但是当我尝试运行heroku时,我会得到上面显示的有关firefox的错误。如有任何帮助,将不胜感激。
发布于 2015-08-07 04:48:18
正如海因斯特提到的,火狐没有安装在Heroku上。这意味着您必须让Heroku不在本地机器上,而是在运行脚本的Heroku实例上。
您添加到/etc/paths
中的行是您的Mac --而不是您试图运行应用程序的Heroku实例。
或者,尝试使用类似于这个建筑包的东西。这需要一些额外的工具,比如Xvbf,让Firefox有一个内存中的缓冲区,让Selenium点击正确的按钮等等。
或者:为什么不使用没有硒的Scrapy呢?大多数任务可以在没有浏览器交互的情况下完成,但是您当然需要搜索更多的内容才能找到解决方案。
https://stackoverflow.com/questions/31867240
复制相似问题