2010-07-26 47 views
2

上drupal.org每个项目都有自己的页面:编程监控网页

http://drupal.org/project/marinelli

当一个新的版本后,它会被添加到该项目的发布页面

http://drupal.org/node/185969/release

我想监视页面,但当然我不想手动检查它。我需要用php编程。

  • 是否必须刮掉页面?这个页面可以被刮掉吗?

  • 我看到一个RSS源,但不知道它是如何工作的,或者它是否可以帮助我监视或如何工作。

  • drupal.org是否提供了像API这样的更清洁的解决方案?或者有没有办法直接监视存储库?

  • 其他解决方案欢迎

回答

4

,而不是试图scrappe的页面,就像你说的,更好的解决办法可能是使用其RSS源 - 例如,你的情况:http://drupal.org/node/185969/release/feed

的优点是,RSS是一个明确的格式:在HTML汤中获取任何不必要的信息的机会较少。


为了从该XML饲料的数据,你可以使用SimpleXML的XML数据“通过手”,或者像SimplePie一些库,知道RSS/ATOM工作。

然后,在这种情况下,您必须跟踪上次更新 - 并且每次获取RSS源时,检查是否存在比上次看到的更新更新的更新。


在您的Marinelli模块的XML中,您会看到每个条目都包含一个<pubDate>标记,它对应于其日期;例如:明天

<pubDate>Tue, 25 Aug 2009 07:28:26 +0000</pubDate> 

如果今天最新的条目是2009-08-25,而且,有一个从2010-07-27的入口......嗯,这意味着该模块已更新;-)

2

什么网站自身供稿? http://drupal.org/node/185969/release/feed只需订阅任何RSS阅读器(例如谷歌阅读器)

你是什么意思,你需要检查它编程?是否有后端在没有用户交互的情况下下载并安装更新?

5

有一个核心模块“更新状态”,检查是否有任何更新可用于您安装的模块。你可以直接使用它,如果这符合你的需要,或者检查模块请求数据的来源。

1

您可以在http://updates.drupal.org/release-history/$project_name/$api_version得到一个项目的发布,例如见http://updates.drupal.org/release-history/marinelli/6.x

+1

我知道的不多。但很明显,updates.drupal.org链接不是RSS,而是使用其他一些XML模式。 – 2010-07-26 18:31:02