2012-09-14 31 views
2

我有這個網絡應用程序,用戶(主要是英語學習者或兒童)可以搜索我的數據庫中的一些現有許可文章。他們可以通過類別,標籤進行過濾,每個人都有多難。如何下載維基百科文章和存儲在數據庫中

因此,我正在考慮將維基百科中的文章添加到數據庫,並且能夠在一段時間內更新數據庫中的文章,但我不確定最佳方法是什麼。我的理解是,我需要每次都下載壓縮文件,然後解壓縮它們,以便我以XML格式獲取文章。然後我可以根據標籤將它們添加到數據庫中?有沒有一種方法可以讓它自動更新?我閱讀文章,但在數據轉儲,但不知道如何開始。

http://en.wikipedia.org/wiki/Wikipedia:Database_download#SQL_schema

+0

你首先需要一個用戶帳戶,只是櫃面你沒有知道;)。其次,您需要訪問其API Web服務,此時您需要處理通過該調用返回的XML結果。 – GoldBishop

+0

@GoldBishop即使沒有帳戶,您也可以使用維基百科的API,以防萬一您不知道。 Ruby提到的轉儲與API無關。 – svick

+0

@svick沒有帳戶,你不必獲得授權Cookie?通過您的帳戶,您只需將您的唯一帳戶ID與另一個驗證字符串一起傳遞,您就可以在桌面上完成所有操作。 – GoldBishop

回答

-2

也許會更好,只是抓取和索引維基百科。然後,您可以將搜索索引與頁面關聯起來,存儲在Apache Solr等系統中。如果你這樣做,一定要禮貌您的請求率,

這避免了存儲,並且不需要努力獲取內容更新。只有鏈接需要更新(可能要少得多)。

如果您不希望過濾什麼人找,那麼你很可能只是註冊了Google's search API並保存履帶時間/精力...

+0

因爲我對網絡技術瞭解不多,所以我還有一些問題。但是,如果有許多用戶在應用程序中搜索文章,那麼最好是將所有內容都存儲在數據庫中,就像我對其他文章所做的一樣,因此搜索和顯示它們更容易。 – Ruby

+1

你真的不應該直接抓取維基百科。如果您只想要一些文章,請使用API​​。如果你想要所有這些,使用轉儲。 – svick

+0

這取決於您是否想要一組有限的數據或對維基百科的一般訪問權限。 IANAL,但據我所知,除非您自己使用CC-BY-SA許可證,否則您不得複製維基百科批發。 http://en.wikipedia.org/wiki/Wikipedia:Mirrors_and_forks。這或多或少意味着,如果您想讓應用程序中的人員訪問其內容,則必須鏈接到該應用程序,而不是複製它。由於涉及以可接受的速率(周)進行爬網的時間,因此通過api重新使用Google爬網可能是最佳選擇。 – Gus

相關問題