2016-03-02 2 views
0

Я пытаюсь запросить все ссылки на страницы категории в Википедии. Это было легко сделать с помощью шаблонов, но у меня проблемы с категориями.Query Wikipedia: получить ссылки с категории

Я обычно вхожу в Wikipedia от ssh at ... @ 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

Например, то, что я ожидаю получить среди результатов, является ссылкой на авиакатастрофу Algerian Air Force 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

Да, вы правы! Я смутился с порядком ссылок. Большое спасибо. –