什么是实现自动更新程序(机器人)的好方法

时间:2012-04-14 18:23:13

标签: web-crawler

我是这类新手,但我想创建一个机器人,每隔几个小时左右就可以抓取某些网站并更新另一个网站(使用它进行NBA统计)。

我不相信我在编码机器人时会遇到问题。我主要使用java(Firefox导航器插件,Java HTTP请求以及普通的旧机器人类)来处理这类事情。

我想咨询的是我应该在何处以及如何维护/运行代码。

我认为我需要把它放在某个地方的服务器上。我可以买自己的(最终需要)或者我可以在某个地方托管它。是否有任何在线可靠地(并且可能免费)提供此服务?

至于如何,一些常见的设置是什么?我对Java更熟悉,但我发现使用任何语言。如何处理非常长时间的不活动时间?我只是睡觉了吗?请原谅我的无知,如果这是一个可怕的解决方案,但我坦率地没有经验。我是否需要像LAMP堆栈一样完整的东西,或者我可以轻松地完成这一切吗?我可以做些什么相对无痛的方法呢?

1 个答案:

答案 0 :(得分:1)

对于使用机器人抓取网站我建议使用Jsoup或Selenium 2。 我会在自己的机器上进行爬行,但是如果你需要将这些信息发布到服务器或应用程序,那么你需要一台服务器。

一般来说,这种任务(每隔x次和睡眠时间为QUITE A WHILE)被称为“cron-jobs”或“crons”。

如果您的抓取工具全天候运行,则称其为守护程序。

对于crons,你需要某种调度(你希望它运行的频率)。如果您使用的是Linux,那么crontab就是解决方案。在文本文件中,您可以指定程序运行的时间(例如每n分钟,特定时间或某个月的某一天等),操作系统将自动运行您的过程。

这样你的程序可以完成工作并关闭,因为操作系统每次都会启动一个新的程序实例。

如果你没有linux我肯定有windows替代品。否则,有一个名为Quartz的框架可用于java。

唯一的问题是java程序将全天候运行,除了Quartz会不时调用你的类。