如何解决来自 MediaWiki 的重定向

问题描述

我目前正在尝试阅读 Mediawiki 站点内容,我只知道该站点的通用 URL 会将我重定向到“真实”内容

例如当我想阅读漫画2423的explainxkcd内容时,我可以使用2423作为标题和请求

https://www.explainxkcd.com/wiki/api.PHP?action=query&prop=revisions&rvprop=content&formatversion=2&format=json&titles=2423

给了我什么

{
  "batchcomplete": true,"query": {
    "pages": [
      {
        "pageid": 23828,"ns": 0,"title": "2423","revisions": [
          {
            "contentformat": "text/x-wiki","contentmodel": "wikitext","content": "#REDIRECT [[2423: Project Orion]]"
          }]}]}}

我现在可以从 2423: Project Orion 解析 "#REDIRECT [[2423: Project Orion]]" 并手动将其转换为 titles=2423:_Project_Orion 给我

https://www.explainxkcd.com/wiki/api.PHP?action=query&prop=revisions&rvprop=content&titles=2423:_Project_Orion

但这感觉很奇怪而且毫无用处的手动操作。不幸的是,我一般对 Mediawiki 或 Web API 不太感兴趣 - 你能给我一个提示,我应该来自

2423(我知道的通用索引)

https://www.explainxkcd.com/wiki/api.PHP?action=query&prop=revisions&rvprop=content&titles=2423:_Project_Orion(我要查询的网址)

无需从 Mediawiki 答案中手动合成标题

解决方法

static void method1() { string team1 = ""; team1 = Console.ReadLine(); } static void method2() { } 添加到您的查询字符串:

https://www.explainxkcd.com/wiki/api.php?action=query&prop=revisions&rvprop=content&formatversion=2&format=json&titles=2423&redirects=1

redirects:自动解析查询+标题中的重定向, query+pageids 和 query+revids,以及由返回的页面 查询+生成器。

类型:布尔值(详细信息)