如何从维基百科中获取前 100 个字符 api

How to get First 100 characters from wikipedia api

我想从维基百科 API 查询中检索前 100 个文本字符。

我在 Google 和 Stack Overflow 上搜索了很多,但都没有找到答案。 通过搜索我得到了所有的文本内容,但我只需要前 100 个字符。

这是我的代码的工作片段:

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


<div id="article"></div>

<script type="text/javascript">

    
    $(document).ready(function(){

 $.ajax({
     type: "GET",
     url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Jimi_Hendrix&callback=?",
     contentType: "application/json; charset=utf-8",
     async: false,
     dataType: "json",
     success: function (data, textStatus, jqXHR) {
     
  var markup = data.parse.text["*"];
  var i = $('<div></div>').html(markup);
  
  // remove links as they will not work
  i.find('a').each(function() { $(this).replaceWith($(this).html()); });
  
  // remove any references
  i.find('sup').remove();
  
  // remove cite error
  i.find('.mw-ext-cite-error').remove();
  
  $('#article').html($(i).find('p'));
   
  
     },
     error: function (errorMessage) {
     }
 });    
    
    });
    
 
    
</script>

您的问题与维基百科无关,但您可以使用 substring() 获取前 n 个字符,即

"one two three four".substring(0, 8)
-> "one two "

在你的情况下是这样的:

i.substring(0, 100)

您尝试过使用 substring/slice 吗?

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


<div id="article"></div>

<script type="text/javascript">

    
    $(document).ready(function(){

 $.ajax({
     type: "GET",
     url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Jimi_Hendrix&callback=?",
     contentType: "application/json; charset=utf-8",
     async: false,
     dataType: "json",
     success: function (data, textStatus, jqXHR) {
     
  var markup = data.parse.text["*"];
  var i = $('<div></div>').html(markup);
  
  // remove links as they will not work
  i.find('a').each(function() { $(this).replaceWith($(this).html()); });
  
  // remove any references
  i.find('sup').remove();
  
  // remove cite error
  i.find('.mw-ext-cite-error').remove();
  
  $('#article').html($(i).find('p').text().slice(0, 100));
   
  
     },
     error: function (errorMessage) {
     }
 });    
    
    });
    
 
    
</script>

因为我们只需要 wiki 页面文本内容中的 100 个字符,我们可以迭代段落直到我们得到至少 100 个字符,然后使用方法 slice.

检索前 100 个字符

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


<div id="article"></div>

<script type="text/javascript">
   
    
  $(document).ready(function(){
  // extracting 100 length text content from Whosebug page
 $.ajax({
     type: "GET",
     url: "http://en.wikipedia.org/w/api.php?action=parse&format=json&prop=text&section=0&page=Stack_Overflow&callback=?", 
     contentType: "application/json; charset=utf-8",
     async: false,
     dataType: "json",
     success: function (data, textStatus, jqXHR) {
     
  var markup = data.parse.text["*"];
  var i = $('<div></div>').html(markup);
  
  // remove links as they will not work
  i.find('a').each(function() { $(this).replaceWith($(this).html()); });
  
  // remove any references
  i.find('sup').remove();
  
  // remove cite error
  i.find('.mw-ext-cite-error').remove();
    
         // whole paragraphs
   var paragraphs = $(i).find('p');
    
         // convert whole paragraphs to string
         var str = "";
         for (var i = 0; i < paragraphs.length; ++i) {
            str += paragraphs[i].textContent;
            // break as soon as we get required length
            if (str.length >= 100 ) break; 
         }
   $('#article').html(str.slice(0,100));
   
    },
     error: function (errorMessage) {
   }
 });    
    
    });
    
</script>