Python - 如何获取维基百科将我重定向到的页面?

2024-01-09

我想存储一些不同的维基百科链接,但我不想将同一页面的两个不同链接存储两次。例如,以下链接不同,但它们指向相同的维基百科页面:

https://en.wikipedia.org/w/index.php?title=(1S)-1-Methyl-2,3,4,9-tetrahydro-1H-pyrido-3,4-b-indole&redirect=no 
https://en.wikipedia.org/w/index.php?title=(1S)-1-methyl-2,3,4,9-tetrahydro-1H-pyrido-3,4-b-indole&redirect=no
__________________________________________________|___________________________________________________________

唯一的区别是一个大写字符。或者以下链接:

https://en.wikipedia.org/wiki/(0,1)-matrix 
https://en.wikipedia.org/wiki/(0,1)_matrix 
___________________________________|______ 

这只是因为一个有“-”而另一个有“_”(“”)。所以我想要的是只存储其中之一或以下链接:

https://en.wikipedia.org/wiki/Tetrahydroharman 
https://en.wikipedia.org/wiki/Logical_matrix 

我已经尝试过这个问题的答案所以问题 https://stackoverflow.com/questions/36070821/how-to-get-redirect-url-using-python-requests。但这对我不起作用。 (结果是我的初始 URL,而不是 wiki 在浏览器中将我重定向到的那个 URL)那么我怎样才能实现我正在寻找的东西呢?


The 媒体维基API https://www.mediawiki.org/wiki/API:Main_page提供维基百科中使用的各种端点。您可以使用MediaWiki 操作 API https://en.wikipedia.org/w/api.php获取重定向的目标页面。

结果可以是 JSON 格式(例如)

您所需要的只是解析它以获取元素的值to或元素title

此查询将检索“Halab”的目标页面:

Result:

{  
   "batchcomplete":"",
   "query":{  
      "redirects":[  
         {  
            "from":"Halab",
            "to":"Aleppo"
         }
      ],
      "pages":{  
         "159244":{  
            "pageid":159244,
            "ns":0,
            "title":"Aleppo"
         }
      }
   }
}

在Python中:

import json
import requests

query = requests.get(r'https://en.wikipedia.org/w/api.php?action=query&titles={}&redirects&format=json'.format('Halab'))

data = json.loads(query.text)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python - 如何获取维基百科将我重定向到的页面? 的相关文章

随机推荐

  • 计算/异步数据获取

    我正在尝试创建简单的 Vue CouchDB 应用程序 使用 Vanilla JS 可以正常工作 但我无法通过 Promise 或异步函数从数据库获取数据到我的 vue 实例 这是我的代码 app html div table thead
  • Cassandra 中写入总是比读取快吗?

    我在听这次演讲 https www youtube com watch v zyZ35YyT 8Cassandra 中的数据建模 演讲者的总体说法是 Cassandra 中的写入速度比读取速度快 这种情况总是正确的吗 如果是这样为什么 尽管
  • Python 分布式计算(作品)

    我正在使用旧线程发布试图解决相同问题的新代码 什么构成了安全的泡菜 this http docs python org library crypto html sock py from socket import socket from s
  • _Bool 和 bool:如何解决使用 _Bool 的 C 库的问题?

    我用 C 语言编写了一系列数据结构和函数 其中一些使用 Bool 数据类型 当我开始时 该项目将是纯 C 的 现在我正在研究使用基于 C 的 GUI 工具包 并将后端代码放入库中 但是 在编译 C GUI 时 编译器会发出以下错误 ISO
  • Angular ng-submit 被调用两次

    我有一个有角度的表单 其提交方法被击中两次 我不明白为什么 我对 Angular 还很陌生 所以我可能忽略了一些相当简单的东西 Html div div
  • 如何完全禁用 WooCommerce 产品类型的运输?

    我想禁用为特定产品类型选择运输方式的要求 此处为 预订 产品类型 在结账时 因此 他们应该能够购买无需运输方式的产品 要在购物车中有特定产品类型时完全禁用运输 您将使用以下命令 add filter woocommerce cart nee
  • 自定义 Flutter Service Worker

    Flutter 自动生成 Service Workerflutter service worker js在为网络构建时 但我想为第三方路由添加我自己的获取 缓存规则 我怎样才能做到这一点 到目前为止 我发现的唯一解决方法是制作一个脚本来后处
  • JavaScript 中的“双波浪号”(~~) 运算符是什么? [复制]

    这个问题在这里已经有答案了 我在一些代码中看到了这一点 但我不知道它的作用 var jdn function y m d var tmp m lt 2 1 0 return 1461 y 4800 tmp 4 367 m 2 12 tmp
  • -Android 3 浏览器中的 webkit-tap-highlight-color

    我们有一个包含许多输入的表单 每当我点击表单时 它就会突出显示为灰色 I have webkit tap highlight color rgba 255 255 255 0 我也使用了rgba 255 255 255 0 这会在 iOS5
  • Microsoft.Graph 获取组的所有用户

    我正在使用 Microsoft Graph 我想返回特定组中所有用户的列表 我找不到任何关于此的易于理解的信息 我尝试过使用 Request Expand x gt x Members 但这只返回 20 个用户 并且它们不会被分页 参见he
  • React-bootstrap 按钮 bsStyle

    好吧 我显然错过了一些东西 但现在无法弄清楚 import React from react import Button from react bootstrap let App React createClass render funct
  • 在 Cors 中发送原始 cookie 不适用于 VideoJS

    我有以下子域 stream example com sub example com 这两个域都有 SSL 证书并且有效 我在用videoJS 7 6 6其中有http streaming https github com videojs h
  • 如何检查Android中指纹认证的设备兼容性

    我正在使用 android 6 0 api 进行指纹身份验证 我的要求是 如果当前设备支持指纹认证 那么我将进行指纹认证 否则将使用正常方式登录应用程序 所以 任何人都可以告诉我 如何检查 Android 中指纹认证的设备兼容性 提前致谢
  • 带有 python 列表和拆分的 IndexError 消息

    我正在尝试学习 python 并深入研究字符串函数 作为一个简单的例子 我写了这个 example line username 231 2 gecos field home dir usr bin false FILENAME etc pa
  • d3.在 inkscape 上选择:label=“foo”

    我正在尝试按其选择一个图层inkscape label属性能够在网站上显示 隐藏图层 function hideFOO if d3 select hideFOO checked node d3 select layer11 attr vis
  • 访问 AWS Elastic Beanstalk .net core 应用程序中的 wwwroot 文件夹

    在过去的几天里 我一直在尝试找出为我的 EB net core 项目存储图像的最佳方法 当我最初开发它时 我只是将图像存储在wwwroot images whatever I needed 目录 然而 我在部署后不久发现该项目没有权限写入
  • 将事件附加到数组的每个元素

    我制作了几个图标 当鼠标悬停时 他们应该做一些事情 现在 我已经制作了一个图标数组 但是当我将each 应用于该集合时 它不起作用 所以我需要以下代码块将悬停事件附加到集合的每个元素 var icon set new Array icon
  • 已删除的文件仍然出现在 Directory.GetFiles 结果中

    我有两个网络方法 第一个是 void deleteFile string filePath File Delete filePath 另一个是 string getAllFile at the same folder Directory G
  • 使用 KClass 类型绑定到 Map

    我正在尝试绑定的子类ViewModel他们的地图KClass types Module abstract class ViewModelModule Binds IntoMap ViewModelKey MyViewModel class
  • Python - 如何获取维基百科将我重定向到的页面?

    我想存储一些不同的维基百科链接 但我不想将同一页面的两个不同链接存储两次 例如 以下链接不同 但它们指向相同的维基百科页面 https en wikipedia org w index php title 1S 1 Methyl 2 3 4