我尝试使用 SQL 查询访问 WikiMedia 数据库以获取文章页面的内容。('old_text', from the 'text' table)
通过搜索它的 page_title (from the 'page' table)
。不幸的是,我看不到 page_id 之间的映射(from the page table) an the old_id (from the 'text' table)
。
那么,如何使用给定的页面标题从带有 sql 查询的文章中获取文本?
问问题
182 次
2 回答
1
该text
表的文档说:
old_id
修订表中的 revision.rev_text_id 是该列的键。
因此,要获取某个修订版的文本,您需要知道您想要的修订版的 id。如果您只想要页面的最新版本,则其 id 存储在page_latest
.
于 2012-09-12T13:30:54.010 回答
1
为了补充 svick 的回答,这里有一个实际的示例 SQL 查询:
SELECT old_text, old_flags
FROM page
JOIN revision ON rev_id = page_latest
JOIN text ON old_id = rev_text_id
WHERE page_title = 'Main_Page' AND page_namespace = 0;
(请注意,您也需要该old_flags
字段来理解 . 的内容old_text
。至少,您应该检查 flags 字段是否包含您期望它具有的值。)
于 2012-09-12T14:57:17.780 回答