【问题标题】:Grab dates from a website and put into a calender从网站上获取日期并放入日历
【发布时间】:2012-01-29 11:47:49
【问题描述】:

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

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

我应该从哪里开始和结束这样做?

我非常擅长 RoR 和 Javascript,但完全不知道我应该使用什么技术来实现这一点。

希望你能对我的问题有所了解。

谢谢

【问题讨论】:

    标签: javascript jquery ruby-on-rails


    【解决方案1】:

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

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

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

    【讨论】:

    • 我想我现在需要的东西太多了。非常感谢:-)
    【解决方案2】:

    在 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,但差异并不是很大。

    【讨论】:

    • 太好了...谢谢。但是我想知道,每次我想要运行这个脚本时,我是否必须去一个网页?还是我可以以某种方式将脚本上传到自己,然后让它不时调用自己?
    【解决方案3】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-04
      • 2015-09-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多