我对 Wikipedia API 很陌生,但我最近遇到了一个基于 wikimedia 构建的中文网站,我想用它来帮助我将各种页面解析为可行的格式,以便最终使用 XPATH 进行处理。看了一会儿,我发现 action=parse 参数就是我要找的。例如,以下查询可以毫无困难地加载:(来自 Wikipedia)
api.php?action=parse&page=Main_Page&format=xml
它显示文本,然后是语言链接,然后是链接。我对链接部分特别感兴趣,因为我将使用这些数据来爬过这个基于维基百科的站点来创建页面层次结构。
为了复制这些结果,我将查询添加到我网站的页面末尾:
http://www.youbianku.com/api.php?action=parse&page=%E5%8C%97%E4%BA%AC&format=xml
%E5%8C%97%E4%BA%AC 解析为北京的汉字,顺便说一句。无论如何,我得到以下结果:
<api>
<error code="params" info="The page parameter cannot be used together with the text and title parameters"/>
</api>
我所做的只是从维基百科复制查询并替换页面名称。我不清楚为什么这会突然引发错误。在该页面运行其他API查询没有问题,如下图所示:
api.php?action=query&format=xml&titles=%E5%8C%97%E4%BA%AC&rvprop=content&prop=revisions
我最近读到这可能是由于 htaccess 重写规则默认添加了标题。鉴于我是该网站的客户,有没有办法绕过这些?