从网站抓取日期并将其放入日历中

时间:2012-01-28 15:35:20

标签: javascript jquery ruby-on-rails

这是一个长镜头而我正在写作,因为我不知道从哪里开始。

我想编写一些代码,可以自动定期从this网站抓取5个日期并将其放入我的iCal日历中。

我应该从哪里开始和结束呢?

我在RoR和Javascript方面相当不错,但我完全不知道应该使用什么技术来实现这一目标。

希望你能解释一下我的问题。

由于

3 个答案:

答案 0 :(得分:1)

假设HTML页面始终保持相同的基本结构,您可以使用nokogiri之类的东西来定位包含日期的节点。

然后,您可以根据需要使用Date.strptimeDateTime.strptime方法将日期从特定格式转换为Date或DateTime对象。

至于然后将日期添加到您的日历中,这不是我必须做的事情,但您可能想查看How to interact with a CalDAV server from Ruby?

答案 1 :(得分:0)

在Javascript中使用XMLHttpRequest对象下载所需的页面,然后使用正则表达式解析日期。似乎日期都有固定的格式:

<b>Mon Day Hr:Min UTC+4</b>

因此为此编写正则表达式应该很容易。我不知道确切的Javascript正则表达式格式,但这里是.NET的等价物,它应该很容易调整到Javascript - 希望这有帮助:

<b>(?<date>(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) [0-9]{2} [0-9]{2}:[0-9]{2}) UTC[+-][0-9]+</b>

这将查找页面中的所有日期字段 - 一旦您拥有日期字段,每个正则表达式匹配将包含一个名为date的子组,其中包含实际日期部分。

如果你转到这个页面:.NET Regex tester你可以测试上面的表达式,看看它是如何返回日期的 - 只需复制&amp;使用日期粘贴页面的来源。正如我所说,这适用于.NET,不适用于Javascript,但差异并不大。

答案 2 :(得分:0)

使用Ruby脚本。 Mechanize gem可以从网页中抓取日期。然后ri_cal gem可以将它们添加到您的日历中。像xxbbcc建议的纯JavaScript方法可能是可能的,但几乎肯定会涉及更多。如果您已经熟悉Ruby,我建议您利用“魔力”,让这些宝石为您做肮脏的工作。