2012-01-28 73 views
0

這是一個很長的畫面,我在寫,因爲我不知道從哪裏開始。從一個網站抓取日期並放到日曆中

我想寫一些代碼,可以自動定期從this網站抓取5個日期,並將它們放到我的iCal日曆中。

我應該在哪裏開始和結束這樣做?

我在RoR和Javascript中相當不錯,但完全不知道我應該用什麼技術來實現這一點。

希望你能對我的問題提出一些看法。

感謝

回答

1

假設HTML頁面總是保持相同的基本結構,您可以使用類似nokogiri的東西來找到包含日期的節點。

然後,您可以根據需要使用Date.strptimeDateTime.strptime方法將日期從特定格式轉換爲Date或DateTime對象。

至於然後添加日期到您的日曆,它不是東西,我不得不這樣做,但你可能想看看How to interact with a CalDAV server from Ruby?

+0

我覺得我現在有更多需要去的地方。非常感謝 :-) – 2012-01-29 20:55:06

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您可以測試上述表達式來看看它是如何返回的日期 - 只要複製粘貼&你的頁面與日期源。正如我所說的,這是針對.NET的,而不是Javascript,但差異並不大。

+0

大...謝謝。但後來我想知道,每次我想要運行這個腳本時,我是否必須去一個網頁?或者我可以以某種方式將腳本上傳到自己,然後讓它不時自稱? – 2012-01-28 16:18:43

0

使用Ruby腳本。機械化寶石可以從網頁上刮取日期。然後,ri_cal寶石可以將它們添加到您的日曆中。像xxbbcc這樣的純JavaScript方法可能是可行的,但它幾乎肯定會涉及更多。如果你已經熟悉Ruby,我建議你可以利用「魔法」,讓這些寶石爲你做一些骯髒的工作。