我在Heroku上运行了一个节点应用程序。我正在使用python中的selenium抓取一个网站,并在需要时从我的节点应用程序调用python脚本。我在我的Mac上安装了PhantomJS,当我在本地运行应用程序(node index.js)时,一切正常。
path_to_phantom = '/Users/govind/Desktop/phantomjs-2.1.1-
macosx/bin/phantomjs'
browser = webdriver.PhantomJS(executable_path = path_to_phantom)
但是,Heroku似乎没什么用。我还将PhantomJS buildpack添加到我的节点应用程序,但它不会调用python脚本。我认为问题是PhantomJS buildpack的路径。我应该添加什么路径?或者我在这里缺少任何其他方面吗?
答案 0 :(得分:2)
按照以下步骤,我设法在部署到Heroku的Python应用程序中使用Selenium和PhantomJS:
1)切换到我的Heroku应用程序上使用Cedar-14堆栈
$ heroku stack:set cedar-14
2)安装PhantomJS buildpack
$ heroku buildpacks:add https://github.com/stomita/heroku-buildpack-phantomjs
通过这些更改,我可以使用Selenium来获取网站
from selenium import webdriver
browser = webdriver.PhantomJS()
browser.get("http://www.google.com") # This does not throw an exception if it got a 404
html = browser.page_source
print html # If this outputs more than just '<html><head></head><body></body></html>' you know that it worked