2013-04-05 25 views
6

我試圖在維基百科上找到所有圖像的完整列表,然後我可以將其過濾到公有領域。我已經下載從這裏的SQL轉儲:在維基百科中查找和下載圖像轉儲

http://dumps.wikimedia.org/enwiki/latest/

,並研究了DB模式:

http://upload.wikimedia.org/wikipedia/commons/thumb/4/42/MediaWiki_1.20_%2844edaa2%29_database_schema.svg/2193px-MediaWiki_1.20_%2844edaa2%29_database_schema.svg.png

我想我明白它,但是當我選擇一個樣本圖像從一個維基百科頁面我無法在垃圾箱中的任何地方找到它。例如:

http://en.wikipedia.org/wiki/File:Carrizo_2a.JPG

我已經做了轉儲「圖像」,「imagelinks」在grep和「頁」尋找「Carrizo_2a.JPG」,它不是發現。

這些轉儲沒有完成嗎?我誤解了結構?有一個更好的方法嗎?

此外,要向前跳一步:在我篩選了我的列表後,我想下載一大批圖像(數千)後,我看到一些提及我需要從網站的鏡像中執行此操作以防止重載維基百科/維基媒體。如果對此也有任何指導,那將會有所幫助。

+0

以下是顯示相同症狀的第二張圖像的示例。我已經嘗試了一堆,並沒有找到一個單一的,但它是在轉儲。 http://en.wikipedia.org/wiki/File:Aerial-SanAndreas-CarrizoPlain.jpg – 2013-04-05 21:54:42

回答

10

鏈接到MediaWiki儲存在兩個或三個地方的數據文件,這取決於你如何計算:

  • 當前文件版本實際的元數據存儲在image表。這可能是你主要想要的;你會發現它的最新en.wikipedia轉儲here

  • 舊的替代文件修訂版的數據移動到oldimage表中,該表與image表基本上具有相同的結構。此表也被傾倒,最新的一個是here。最後,每個文件也(通常)對應於命名空間6(File:)中的一個非常普通的wiki頁面。您可以在XML轉儲中找到這些文本,與其他任何頁面一樣。

哦,你沒有找到你所鏈接到英文維基百科轉儲文件的原因是,他們從維基共享資源共享資源庫是。您可以改爲在Commons data dumps中找到它們。

至於至於我可以告訴下載的實際文件,here's the (apparently) official documentation.,他們所用的意思是「批量下載,目前(截至2012年九月),從鏡子而不是直接從維基媒體服務器提供。」是如果你想要tarball中的所有圖像,你必須使用鏡像。如果您只是在維基百科和/或Commons上的圖片上拉動數百萬的相對較小的子集,那麼直接使用維基媒體服務器應該沒問題。

只要記住要行使基本禮貌:發送一個user-agent string標識自己,並不要打太大的服務器。特別是,我建議按順序運行下載,以便在完成前一個文件後纔開始下載下一個文件。不僅如此,它比並行下載更容易實現,但它確保您不會佔用更多帶寬,並且允許下載速度或多或少地自動適應服務器負載。

詩篇。無論你從鏡子或直接從維基媒體服務器上下載文件時,您將需要弄清楚他們是在哪個目錄典型的維基百科文件URL看起來像這樣:

http://upload.wikimedia.org/wikipedia/en/a/ab/File_name.jpg 

其中「wikipedia/en」部分標識維基媒體項目和語言(由於歷史原因,Commons被列爲「wikipedia/commons」),the "a/ab" part由UTF-8中文件名的MD5哈希的前兩個十六進制數字給出(因爲它們在數據庫轉儲中編碼)。

+0

非常感謝!我還沒有進入批量下載部分,但我沒有意識到有兩個單獨的數據庫。我現在正在導入他們兩個,但是一個快速的'grep'確認我丟失的文件是在公共區域。維基百科/媒體肯定不會讓這件事變得容易理解。 :) – 2013-04-06 22:25:03

+0

一切都很順利,除了我想弄清楚如何過濾我選擇的圖像,通過什麼是在公共領域。我無法在'圖片'表格或'網頁'表格中找到此信息。 我想這可能只是在頁面本身的內容。例如請參閱此頁面的「許可」部分:http://en.wikipedia.org/wiki/File:Carrizo_2a.JPG 因此,我正在下載此文件: http://dumps.wikimedia.org/enwiki /latest/enwiki-latest-pages-articles.xml.bz2 但我希望找到一個SQL版本,以便於操作。有什麼建議麼?我在這裏的正確軌道? – 2013-04-07 03:37:53

+0

我應該在此頁面上添加它說:「所有頁面和鏈接的SQL文件也可用。」這就是讓我知道他們可能存在某個地方的線索。 – 2013-04-07 03:38:45