繁体   English   中英

使用RegEx查找特定的div并打印内容

[英]Find specific div with RegEx and print content

我正在尝试使用此脚本从外部网站提取一些文本。

它可以完美工作,但可以获取整个页面。 我只想将特定内容内的内容与类“内容”一起使用。 整个页面都放在变量“ data”中,然后创建此函数以剥离一些标签:

function filterData(data){
  data = data.replace(/<?\/body[^>]*>/g,'');
  data = data.replace(/[\r|\n]+/g,'');
  data = data.replace(/<--[\S\s]*?-->/g,'');
  data = data.replace(/<noscript[^>]*>[\S\s]*?<\/noscript>/g,'');
  data = data.replace(/<script[^>]*>[\S\s]*?<\/script>/g,'');
  data = data.replace(/<script.*\/>/,'');
  return data;
}

我将如何查找带有“内容”类的div并仅查看其中的内容?

更新:很抱歉使用RegExes-您能在不使用RegEx的情况下帮助我获取内容吗? 因此,这是我的HTML文件:

<a href="http://www.eurest.dk/kantiner/228/all.asp?a=9" class="ajaxtrigger">erg</a>
<div id="target" style="width:200px;height:500px;"></div>
<div id="code" style="width:200px;height:200px;"></div>
<script src="http://code.jquery.com/jquery.min.js"></script>
<script>
$(document).ready(function(){
var container = $('#target');
$('.ajaxtrigger').click(function(){
doAjax($(this).attr('href'));
return false;
});
function doAjax(url){
if(url.match('^http')){
$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
            "q=select%20*%20from%20html%20where%20url%3D%22"+
            encodeURIComponent(url)+
            "%22&format=xml'&callback=?",
    function(data){
      if(data.results[0]){
        var tree = string2dom(data.results[0]);
        container.html($("div.content", tree.doc));tree.destroy();
      } else {
        var errormsg = '<p>Error: could not load the page.</p>';
        container.html(errormsg);
      }
    }
  );
} else {
  $('#target').load(url);
}
}
function filterData(data){

return tree;
}
});
</script>

尝试这样的事情:

var matches = data.match(/<div class="content">([^<]*)<\/div>/);

if (matches) 
    return matches[1]; // div content

尝试这个:

 <div\\b[^>]*class="content"[^>]*>([\\s\\S]*?)<\\/div> 

在这里试试:

<div[^>]*?class='content'[^>]*?>(.*?)</div>

捕获的参考/ 1将包含您的内容。 虽然您应该使用正则表达式进行此操作:)

这可以帮助您:

    var divtxt = match(/<div[^>]*class="content"[^>]>.*<\/div>/);

但是可能会错误地停止。

您应该使用jquery或prototype使其成为dom对象,并使用选择器找到正确的div。 使用jQuery,您将执行以下操作:

    var divtxt = $(data).find(".content").first().html();

记得先加载jquery库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM