2010-01-21 34 views
2

我需要为第三方网站(这是一个外部网站,有关于我们的访问者的统计数据)建立一个小的“监控​​”刮板。任何方式来运行没有GUI/X会话GreaseMonkey脚本的Firefox

不幸的是,这个网站很难抓住普通的“wget”机制,因为它使用了很多复杂的JS,其中一部分由GWT生成。所以我的解决方法是创建一个GreaseMonkey脚本,然后让这个脚本调用一个记录抓取的数据的PHP页面。然后,只要Firefox启动这个网页即可抓取,该脚本就会起作用。

这很好,但现在我正在努力使监控工具更加强大。我希望它使用cron作业在服务器上运行。据我所知,这需要设置一个DISPLAY变量并且存在一个X会话(Firefox拒绝为我运行)。有没有什么好方法可以让它作为cron作业从批处理用户帐户运行?

回答

3

我做了类似的事情让Selenium在服务器上无头运行。我用Xvfb。

http://en.wikipedia.org/wiki/Xvfb

这篇文章有使用XVFB与Firefox的一些提示:

http://semicomplete.com/blog/geekery/xvfb-firefox.html

+0

完美!正是我在找什么。小错字:时间 - >提示? – Artem 2010-01-21 14:06:07

+0

稍后再看看其他解决方案。 – Artem 2010-01-21 14:17:49

+0

Xvfb看起来很酷。您也可以使用vncserver创建GUI应用程序,而不需要输出读取真实的显示。所以,如果你不想看到“正在发生什么”,你可以使用vncviewer来“真正看到内容”。至少在我的测试中,每个vncserver对内存的影响都很小。 – erm3nda 2015-06-01 09:36:16