获取网页并使用javascript阅读

时间:2010-12-16 10:30:43

标签: javascript html

嗨我有一个简单的问题,说你想连接到一个网站并搜索它包含的链接,你如何用javascript做到这一点? 我想做这样的事情

Var everythingAdiffrentPageContains = //Go to some link ex www.msn.se and store it in this variable

var pageLinks  = [];  var anchors    = everythingAdiffrentPageContains.getElementsByTagName('a');  
var numAnchors = anchors.length;
for(var i = 0; i < numAnchors; i++) {     
     pageLinks.push(anchors[i].href); 
} 

我们可以假设我们拥有该网站的访问权限,因此这不是一个问题。

换句话说,我想去一些网站并将所有网站的超链接存储在一个数组中,你会如何在javascript中执行此操作?

由于

EDIT指出我试图连接到另一个域。我试图连接到我的局域网内的另一个apache网络服务器,该网络服务器托管一个我想扫描链接的网站。

Unfornuatley我的网络服务器上没有PHP:/但是一个简单的javascript会这样做

例如转到X:/folder/example.html

阅读并存储链接

2 个答案:

答案 0 :(得分:0)

不幸的是 - 你不能这样做。 “我们可以假设我们拥有网站的访问权限”......如果页面位于另一个域,则从JavaScript的角度来看这是一个错误的假设。您无法通过JavaScript访问其他域(而不是HTML内容)上的内容。由于几个安全原因,same-origin policy阻止了它。

答案 1 :(得分:0)

我建议你使用一个JS框架来帮助你轻松地检索元素和使用DOM。 例如,使用mootools你可以实现这样写一些代码:

var req = new Request.HTML({
   url:'./retrieve.php?url=YOURURL', //create a server script to "retrieve" the html of another domain page    
   onSuccess: function(tree,DOMelements) {
       var links = [];
       DOMelements.getElements('a').each(function(element){
           links.push(element.get('href'));
       });
   }
});
req.send();

应该以这种方式编写retrieve.php页面:

<?php
    $url = $_GET['url'];
    header('Content-type: application/xml');
    echo file_get_contents($url);
?>