Pet*_*ric 5 redirect mediawiki normalization wikipedia-api mediawiki-api
如果我尝试通过他们的API获取维基百科上的页面的语言链接,如下所示:
我得到了一份结果清单.
但是,如果我像拉尔夫一样贬低拉尔夫的R:
我没有结果.
看看返回的信息,看起来维基百科在第一个例子中将"wreck-it Ralph"标准化为"Wreck-it Ralph",重定向到"Wreck-It Ralph".
在第二个例子中,"wreck-it ralph"被标准化为"Wreck-it ralph",它显然没有重定向到任何地方.
在http://wikipedia.org上搜索"wreck-it ralph" 当然有效:
http://www.wikipedia.org/search-redirect.php?family=wikipedia&search=wreck-it+ralph&language=en
我能否以相同的方式使langlinks查询工作,当我不知道搜索词的所有字符的确切情况时帮助我?
更新 从Sorawee的回答中我设法找到了如何进行不区分大小写的搜索:https://en.wikipedia.org/w/api.php?action = query&generator = search&format = json&thegsrsearch = wreck-it%20ralph>rlimit = 1托=信息
在MediaWiki中,所有标题将自动大写.因此,"wreck-it Ralph"和"Wreck-it Ralph"是同一页.同样,"wreck-it ralph"和"Wreck-it ralph"也是同一页.请注意,大写仅限于第一个字母.
MediaWiki还有一个名为"重定向页面"的页面.重定向页面可以将您从页面重定向到另一个完全不同的页面.例如,https://en.wikipedia.org/wiki/Template:cn会将您重定向到https://en.wikipedia.org/wiki/Template:Citation_needed.这些页面由用户创建,而不是软件.
你问的情况如下图所示.
"wreck-it Ralph"= normalized =>"Wreck-it Ralph"=重定向=>"Wreck-It Ralph"(找到)
"wreck-it ralph"= normalized =>"Wreck-it ralph"(不存在)
所以现在你知道你不能查询页面"wreck-it ralph",因为它不存在.
但是,如果你想从"wreck-it Ralph"中查询,你可能会或者可能不会得到"Wreck-It Ralph"的langlinks.这取决于参数"&redirects =".如果你没有这个参数,它将不会返回任何langlinks,因为"wreck-it Ralph"本身没有langlinks.使用"&redirects =",api将在重定向页面上搜索langlinks(如果存在).因此,它将返回您想要的langlinks.你可以比较:
对于为什么http://www.wikipedia.org/search-redirect.php?family=wikipedia&search=wreck-it+ralph&language=en工作的问题,答案是search-redirect.php不是api.它搜索并返回最近的匹配,而api只返回确切的结果.
| 归档时间: |
|
| 查看次数: |
1346 次 |
| 最近记录: |