1

我还没有找到任何关于这个的东西。我想从网站读取数据。从我的网页中,我可以读取 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);
        }
    }

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

根据@cereallarceny 的回答,我创建了这个代码块,但在运行脚本时没有看到任何警报:

$.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);
        }
    }
}
});
4

2 回答 2

4

如果您使用的是像 jQuery 这样的库,那么您可以简单地使用load()获取网页代码的函数(或者如果您将 a 附加#myDiv到 URL,则可以使用网页的一部分)。如果你把它放在一个变量中,你就可以处理这些信息。如果您只是使用 Javascript,那么您需要考虑发出 AJAX 请求(这是什么load())。您可以在此处找到有关如何执行此操作的更多信息。

有关该load()函数的更多信息,请阅读 jQuery 的文档

请记住,jQuery 的load()功能是将 HTML 加载到元素中。如果您想读取和操作该数据,那么您可能应该使用该ajax()函数。这样,您可以执行以下操作:

$.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请求,同时注意它与请求的来源(您的服务器)的域名不同,然后在一个函数中处理成功,并在一个变量中返回 HTML data。您可以使用您现在喜欢的数据,因为它现在是您的变量,包括按您喜欢的方式解析该信息。

于 2013-04-13T17:48:07.327 回答
0
$file=fopen($URL,'r'); 
    if ($file) 
    { 
    $string =""; 
    while (!feof($file)){ 
            $string .=fgets($file,512); 
    } 
echo $string; 
}else echo "error";

这与网络相呼应。但你可以用它做任何事情。

行。这是一个如何在 js 中请求一个网站

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();
于 2013-04-13T17:59:18.903 回答