2014-09-24 62 views
1

我想獲得維基百科文章的類別列表。我目前使用這個api文章的Wikipedia類別編號

http://en.wikipedia.org/w/api.php?action=query&prop=categories&pageids=17566205|39952380&inprop=url&format=xml 

但是,我需要超過4M條款的類別,並想知道是否有數據轉儲這樣的任務。我不需要一個頁面的文本內容,只需要它的類別。

謝謝。

+0

https://dumps.wikimedia.org/backup-index.html請選擇語言,然後找到類別轉儲。 – Tomek 2014-09-24 17:52:04

+0

什麼是有用的(對於計算機科學家而言)在這裏不能成爲焦點話題。 – bikashg 2014-12-29 11:06:27

回答

2

在MediaWiki的數據庫架構,有categorylinks表,其中包含(其中包括)領域cl_from(頁面ID)和cl_to(類別名稱):

+-------------------+------------------------------+------+-----+-------------------+-----------------------------+ 
| Field    | Type       | Null | Key | Default   | Extra      | 
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+ 
| cl_from   | int(10) unsigned    | NO | PRI | 0     |        | 
| cl_to    | varbinary(255)    | NO | PRI |     |        | 
| cl_sortkey  | varbinary(230)    | NO |  |     |        | 
| cl_sortkey_prefix | varbinary(255)    | NO |  |     |        | 
| cl_timestamp  | timestamp     | NO |  | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP | 
| cl_collation  | varbinary(32)    | NO | MUL |     |        | 
| cl_type   | enum('page','subcat','file') | NO |  | page    |        | 
+-------------------+------------------------------+------+-----+-------------------+-----------------------------+ 

的數據此表可從WikiMedia dumps頁面作爲SQL轉儲(例如enwiki-20140903-categorylinks.sql.gz)獲得。

+0

謝謝,有沒有像文本一樣的轉儲或只有sql – DotNet 2014-09-24 17:59:24

+0

只有SQL。所以最方便的方法是,如果您需要不同的格式,首先將其導入某個數據庫。我曾經創建過一個解析器,它可以直接從MediaWiki的SQL轉儲中讀取並將其轉換爲我的需要,但這是PITA,我絕對不會推薦它。 – qqilihq 2014-09-24 18:03:09