从网页读取div值

时间:2013-04-13 17:43:56

标签: javascript

我还没有真正发现任何相关内容。我想从网站上读取数据。从我的网页上我可以用

读取div的值
<div class="tools">hammer</div>

var divs = document.getElementsByTagName("div");
    for(var i=0; i<divs.length; i++ ) {
        if(divs[i].className == "tools") {
            alert(divs[i].innerHTML);
        }
    }

是否可以设置所需网页的网址,以便此代码可以抓取该网页?我知道类名和网址。

基于@rangelarceny的回答,我创建了这个代码块,但在运行脚本时没有看到警告:

$.ajax({
type: 'get',
url: 'https://play.google.com/store/apps/details?id=com.viber.voip',
crossDomain: true, //Very important, ensures you can get data from a domain that isn't your own!
success: function() {
  var divs = document.getElementsByTagName("div");
    for(var i=0; i<divs.length; i++ ) {
        if(divs[i].className == "votes") {
            alert(divs[i].innerHTML);
        }
    }
}
});

2 个答案:

答案 0 :(得分:4)

如果您使用的是像jQuery这样的库,那么您只需使用获取网页代码的load()函数(如果您将#myDiv附加到网址,则可以使用部分网页)。如果将其放入变量中,则可以处理该信息。如果您只是使用Javascript,那么您需要考虑制作一个AJAX请求(这是load()所做的)。您可以找到有关如何执行此操作的更多信息located here

有关load()功能的更多信息,请read jQuery's documentation

请记住,jQuery的load()函数用于将HTML加载到元素中。如果您想阅读和操作该数据,那么您应该使用ajax() function。通过这种方式,您可以执行以下操作:

$.ajax({
    type: 'get',
    url: 'http://www.google.com',
    crossDomain: true, //Very important, ensures you can get data from a domain that isn't your own!
    success: function(data) {
        $('#myDiv').html(data);

        //Now I can handle all the HTML from my URL from a <div> tag called #myDiv, the following will alert out the body of http://www.google.com
        alert($('#myDiv').find('body'));
    }
});

这实际上会对指定的URL发出 GET 请求,同时注意到它与请求的来源(您的服务器)不是同一个域名,然后在函数中处理成功在变量data中返回的HTML。您现在可以使用数据,因为它现在是您的变量,包括如何解析您的信息。

答案 1 :(得分:0)

$file=fopen($URL,'r'); 
    if ($file) 
    { 
    $string =""; 
    while (!feof($file)){ 
            $string .=fgets($file,512); 
    } 
echo $string; 
}else echo "error";

这与网络相呼应。但你可以随心所欲地做到这一点。

确定。这里是一个如何在js

中索取webSite
var xmlhttp;

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }


   xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    return xmlhttp.responseText;
    }
  }


var answerFromURL=xmlhttp.onreadystatechange();


    xmlhttp.open("GET","urlToParse.php",true);
    xmlhttp.send();
相关问题