2013-03-15 46 views
1

我想提取從各種博客的數據,並會通過各種方式來做到這一點:從任何博客獲取數據的通用標準是什麼?

  1. API,它需要用戶認證
  2. XML RPC(不知道哪個都支持)
  3. RSS(同樣,不知道哪個博客支持它,即使他們這樣做,多少可以從一個RSS提要獲取。)

我知道這不是一個嚴格的編程相關問題,但我向前詢問這個問題,因爲對於使用什麼以及哪個更好地服務有混亂。

如果不使用帶有身份驗證的API,將不勝感激,因爲您不僅需要處理各種身份驗證實現,還必須處理各種API限制。

回答

2

RSS是最早開始使用的。它有一些限制。 Atom旨在替代它,克服RSS的侷限性。 Atom只是XML RPC的一種特殊形式。換句話說,XML RPC還有其他用途,而Atom則是您想要的變體。以上所有都是一種API。所以你想要做的就是支持RSS和Atom。令人遺憾的是,Atom和RSS不兼容。引述Wikipedia on "Atom"

特別是很多博客和wiki網站提供的 Atom格式的網絡訂閱源。

@ porneL的解決方案不建議(目前)。但是,將來,HTML標記會被設置爲改變以提高塊的語義含義,如新的<article>標記。這將是另一種解析文檔的方式。這將是最通用的,但在我看來,它會變得可靠很長一段時間,因爲如果不是大多數網站遭受'標籤湯'綜合徵,許多網站也是如此。

+0

所以你說如果我必須從博客中獲取所有數據,Atom/RSS應該做什麼?如果博客不支持RSS或部分支持它,該怎麼辦?然後? – Hick 2013-03-15 11:22:07

+0

您的代碼應該盡其所能測試博客所支持的內容。首先測試Atom,因爲它是最通用的。否則測試RSS。對於每個你也需要測試不同的領域,看看他們是否是空白的。這可能有助於爲Atom和RSS閱讀思想官方規範,以瞭解標準實現的內容。請注意,有些博客可能無法正確編碼。但是,如果您只想要標題,正文和時間戳,希望您不會遇到太多問題。 – Jodes 2013-03-15 12:26:42

1

最通用通用「標準」是對HTML進行爬取和解析。

wget -m http://example.com/ 

你究竟做了什麼取決於你想要完成什麼以及你想成爲什麼樣的普遍性。

您可以使用與Readability使用的類似的啓發式技術在網站上查找文章。您可以檢測和特例流行的博客平臺。

+0

我通常抓取大多數網站。但這很痛苦,因爲在清理數據時可能會有數據丟失。可讀性幾乎是我的確切用例。但他們只爬行一頁。如果您應該抓取整個存檔,會發生什麼情況?基於API的解決方案不會更好嗎? – Hick 2013-03-15 11:03:27

+0

是的,API肯定會更高保真,但是沒有一個API可以在所有站點上運行。 – Kornel 2013-03-15 11:25:27

相關問題