网络爬虫在groovy和grails每天爬行

时间:2012-12-01 07:20:41

标签: grails groovy web-crawler

我需要实施网络抓取工具来抓取网站以获取每天的数据。做这个的最好方式是什么?我应该写一个时髦的剧本并让它每天重复吗?如果我使用脚本,我就不能使用域类。

有什么建议吗?

2 个答案:

答案 0 :(得分:5)

我建议使用XmlSlurper从网站读取数据,在Grails中的服务中创建,并使用Quartz插件来安排它。这样你就可以访问Grails中的域模型了,你可以使用slurper的酷炫来获取HTML。您可能还需要像Nekohtml http://nekohtml.sourceforge.net这样的解析器。

答案 1 :(得分:0)

我会创建服务并通过Quartz和Cron作业安排它。

服务本身应使用selenium进行爬网。根据您需要抓取的网站,您可能需要检查JavaScript支持所需的浏览器有多好。可能在Selenium的Htmlunit不会削减它。

因此,您需要确保可以在Grails计算机上安装Firefox或Chrome。 为了更进一步地将浏览器安装与服务器分开,您可以使用其他机器作为Selenium网格节点,将服务器用作网格集线器,所有节点都连接在一起。 您的Grails服务现在不需要FirefoxDriver或ChromeDriver来抓取,而是需要与您的Selenium节点对话的RemoteDriver。

也许,为了解除爬虫和Grails应用程序的反馈,您可能希望使用消息系统。 APMQ与Apache Camel相结合将使您走得更远。 如果您使用Camel,请查看Camel如何帮助您使用Quartz