javascript - 通过 MediaWiki API 从文章返回文本?

标签 javascript json mediawiki mediawiki-api

我正在尝试用 JavaScript 编写一个程序,用户在搜索栏中输入一些内容,该程序会返回前 3 个维基百科结果以及每个结果的简短描述。我可以成功获取搜索结果并使用以下语法返回标题:

 articles1.append(x.query.search[0].title);

但是,虽然 MediaWiki 站点 ( https://www.mediawiki.org/wiki/API:Parsing_wikitext ) 让我相信“text”可以用作类似于“title”的参数,但以下内容不会返回任何内容:

 articles1.append(x.query.search[0].text);

“摘要”或列出的任何其他参数也是如此。我觉得我可能从根本上误解了这些参数应该如何工作,但由于我至少可以成功地获取所请求的标题,所以我觉得我不能离得太远。感谢任何帮助,完整代码如下:

HTML:

<input type="text" value='' id=test >
<button>Search</button>

<section class='articles1'>
1.
</section>
<section class='articles2'>
2.
</section>
<section class='articles3'>
3.
</section>

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

JavaScript:

$(document).ready(function() {
    var articles1 = $('.articles1');
    var articles2 = $('.articles2');
    var articles3 = $('.articles3');
    var input = $( 'input' );
    var button = $( 'button' );
    var toSearch = '';
    var searchUrl = 'https://en.wikipedia.org/w/api.php';

    $("button").click( function(e) {
        var search = document.getElementById("test").value;
        $.ajax({
            url: 'http://en.wikipedia.org/w/api.php',
            data: { action: 'query', list: 'search', srsearch: search, format: 'json' },
            dataType: 'jsonp',
            success: function( x ) {
                articles1.append( x.query.search[0].title );
                articles2.append( x.query.search[1].title );
                articles3.append( x.query.search[2].title );
            }
        })
    })
})

最佳答案

Parsing WikiText您所指的页面解释了如何解析任意维基文本。此处不相关。

您正在使用 Search API ,并且只能使用该模块返回的属性。在这种情况下,您可能正在寻找 snippet 属性:

articles1.append( x.query.search[0].snippet );

看看Search API有关更多选项的文档。

<小时/>

附注您还可以使用 MediaWiki's API Sandbox尝试并测试您的 API 请求。

关于javascript - 通过 MediaWiki API 从文章返回文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011423/

相关文章:

mysql - 使用 MediaWiki 软件 - 如何在 MySQL 中将页面标题的长度从 255 字节更改为无限长?

symfony1 - MediaWiKi 用户注册

MySQL 与 PostgreSQL JSON 搜索功能

Javascript 事件监听器 - 触发顺序

javascript - Json 映射 Unsing Amcharts

javascript - 如何在 JavaScript 中使用来自 db/php 的 JSON

ios - NSJSONSerialization 给我错误 "Duplicate key"

json - Grails-向现有的Map域类成员添加新的默认值

mediawiki - 在哪里调用addModules()?

javascript - Jquery 自定义照片幻灯片同时显示所有图像而不是一个然后下一个