mysql - 查询维基百科: retrieve links from a category page

标签 mysql mediawiki categories wikipedia

我正在尝试查询维基百科中某个类别页面的所有页面链接。 使用模板很容易做到这一点,但我在类别方面遇到了问题。

我通常通过 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;

你有这样的例子吗?

任何帮助将不胜感激

最佳答案

您将需要使用 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 .

关于mysql - 查询维基百科: retrieve links from a category page,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755085/

相关文章:

php - 使用 php 循环检查的 mysql 复选框值不起作用

mysql命令行连接到azure

mediawiki - 批量上传许多文本文件到 MediaWiki

php - 如何使用 php 在 MediaWiki 页面上查找图像的文件名?

Java 匹配字符串的最佳方式是什么?

mysql - 如何估算MySQL查询所需的临时磁盘空间?

mysql - SQL 参数 - 在哪里使用

javascript - 资源加载器 : how to load specific functions?

PHP MySQL 项目类别

mysql - SQL创建类别路径/树/层次结构