【问题标题】:Search for Keyword in body在正文中搜索关键字
【发布时间】:2014-09-01 18:30:17
【问题描述】:

我使用 ajax 调用从外部 url 获取 html:

 var uriData = $.ajax({ url: 'http://www.example.com', success: function(data) { alert(data); } });

效果很好。我收到一个带有外部网站 html 的警报。

有没有一种简单的方法来搜索关键字并计算它在 Text 或 html-body 的标题中的数量?

我是这样尝试的:

HTML

<input id="url" type="text" name="url">
<input id="keyword" type="text" name="keyword">

脚本

 function keyWords() {
   var website = jQuery('#url').val(); 
   var keyword = jQuery('#keyword').val(); 

   jQuery.ajax({ url: website, success: function(data) { 
   var sumKeyword = data.split(keyword).length - 1;    
   alert (sumKeyword); } 
   });
 };

但不幸的是,他随后在整个 HTML 中搜索了该关键字。 (例如,也可以在 achor 文本等中)最后,我想获取标题和文本中的关键字数量(p、span 等)

【问题讨论】:

  • 您可以将正文部分 "..." 与匹配 data.match(/(.*)/)跨度>
  • 您能否包含返回的 html 示例?您指的是标题 - html 中没有这样的元素。

标签: javascript jquery ajax


【解决方案1】:

这里有一段代码可能会激发您解决问题

   var data='<span id="url" type="text" name="url">test this test</span>';
    var message = $('<div/>').append(data).find("span:contains('test')").each(function(){

       var sumKeyword = $(this).text().split("test").length - 1;  
       alert (sumKeyword); 

    });

jsfiddle

【讨论】:

    【解决方案2】:

    你可以用 match 函数做到这一点:

    jQuery.ajax({ url: website, success: function(data) {
       var body = data.match(/<body>(.*)<\/body>/)[1];
       var sumKeyword = body.split(keyword).length - 1;    
       alert (sumKeyword); } 
    });
    

    【讨论】:

      【解决方案3】:

      从 HTML 的样板文件中获取文本是由多个外部 API 和库处理的常见任务。您不能通过检查网页中的所有文本来简单地获取文本内容,因为您最终会看到很多不相关的广告等等。 使用像 Diffbot 这样的库可以识别标题/标题和正文,并建议一些标签和关键字。之后您可以对提取的文本进行分析。

      外部 API

      【讨论】:

      • 谢谢大家,我会尝试你的解决方案,稍后再回来!
      猜你喜欢
      • 1970-01-01
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 1970-01-01
      • 2011-03-11
      相关资源
      最近更新 更多