2016-03-02 62 views
0

我想查詢維基百科中所有類別頁面的鏈接。 使用模板很容易,但我遇到類別問題。查詢維基百科:從類別頁面檢索鏈接

我通常通過ssh登錄維基百科... @ tools-login.wmflabs.org 並訪問他們的mysql數據庫。

例如,對於模板我一般做:

SELECT pl.pl_title 
FROM page p 
JOIN pagelinks pl on p.page_id=pl.pl_from 
WHERE p.page_title='Aviation_accidents_and_incidents_in_2014' AND 
     p.page_namespace=10 AND 
     pl.pl_namespace=0; 

查詢很容易使我這個頁面https://en.wikipedia.org/wiki/Template:Aviation_accidents_and_incidents_in_2014

的所有頁面的鏈接。如果我想要做同樣的分類頁面https://en.wikipedia.org/wiki/Category:Aviation_accidents_and_incidents_in_2004

SELECT pl.pl_title 
FROM page p 
JOIN pagelinks pl on p.page_id=pl.pl_from 
WHERE p.page_title='Aviation_accidents_and_incidents_in_2014' AND 
     p.page_namespace=14 AND 
     pl.pl_namespace=0; 

它什麼都沒有返回。

我嘗試了其他組合,但仍然無法獲得它(再次返回零結果)。

SELECT pl.pl_title 
FROM category c 
JOIN pagelinks pl on c.cat_id=pl.pl_from 
WHERE c.cat_title='Aviation_accidents_and_incidents_in_2014' AND 
     pl.pl_namespace=0; 

你碰巧有這樣的例子嗎?

任何幫助將不勝感激

+0

例如,我期望從結果中獲得的是飛往阿爾及利亞空軍C-130墜毀事故的航班和其他列出的航班的鏈接 –

回答

0

您將需要使用MediaWiki的categorylinks table

SELECT p.page_title 
FROM categorylinks AS cl 
JOIN page AS p ON p.page_id=cl.cl_from 
WHERE cl.cl_to='Aviation_accidents_and_incidents_in_2014'; 

查看結果here

+0

是的,您是對的!我對鏈接的順序感到困惑。非常感謝。 –