2010-07-26 77 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