维基百科的pageid是什么?如何将其更改为真实页面网址?


78

我正在研究Wikipedia API,

一些演示API调用

什么是pageid?如何将其更改为真实页面网址?

我的意思是<page pageid="18630637" ns="0" title="Translation" />,如何18630637变成http://en.wikipedia.org/wiki/Translation

Answers:


78

pageid是MediaWiki的内部文章ID。您可以使用动作API的info属性从中获取完整的URL pageid

https://en.wikipedia.org/w/api.php?action=query&prop=info&pageids=18630637&inprop=url


1
我在下面写了一个新的答案,也许注释就足够了……您不需要两个API调用,一个就足够了。只需添加“&道具=信息&inprop =网址”原来的网址: en.wikipedia.org/w/...
jcsahnwaldt恢复莫妮卡

1
无论如何要反向?从任何给定的中获取pageid/title从任何给定的url
维卡斯·普拉萨德

2
@VikasPrasad:您可以使用titles参数,而不是:https://en.wikipedia.org/w/api.php?action=query&prop=info&titles=Stack_Overflow
马捷G.

2
@MatějG。给我的问题是url我们可以得到title还是pageid
Vikas Prasad

@VikasPrasad:据我所知,不适用于一般URL。至少不是通过API。
马捷G.

120

您可以只使用如下网址:

http://en.wikipedia.org/?curid=18630637

这是最短的形式,其他形式也是可能的:

http://en.wikipedia.org/wiki?curid=18630637

http://en.wikipedia.org/wiki/Translation?curid=18630637

http://en.wikipedia.org/w/index.php?curid=18630637

请注意,如果您指定一个curid,MediaWiki将忽略页面标题,因此即使

http://en.wikipedia.org/wiki/FooBar?curid=18630637

指向同一页面。


出色且简短(en.wikipedia.org/?curid=18630637)。谢谢。
netfed

您是否知道是否可以重定向到标题页URL
冻结

@freezed我不知道是否可以使用Wiki URL,但是您可以从API获取页面ID的标题:en.wikipedia.org/w/api.php?
action=query&pageids=18630637

我在询问类似匹配重定向页面这样的东西:https://en.wikipedia.org/w/index.php?title=Whistling_hareredirects to https://en.wikipedia.org/wiki/Pika。对于此页面,参数redirect=no存在(https://en.wikipedia.org/w/index.php?title=Whistling_hare&redirect=no)。我希望有一个类似的网址https://en.wikipedia.org/w/index.php?curid=186307&redirect=yes。实际上https://en.wikipedia.org/w/index.php?curid=186307默认情况下重定向到https://en.wikipedia.org/w/index.php?title=Pika&curid=186307
冻结

只有不知道为什么en.wikipedia.org/?curid=18630637在移动设备上加载为无响应,而en.wikipedia.org/wiki/Translation加载为响应无响应😞–
Jakub

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.