获取给定网址的整个页面的所有href

时间:2016-06-15 17:36:21

标签: php dom

我希望获得给定网站中的所有超链接。所以我写这个代码。但它不能正常工作。它只显示给定网址的所有超链接。但我希望获得给定网站的所有超链接。

<?php 
function getAlllinks($site){
$link = file_get_contents($site);
$dom = new DOMDocument;
@$dom->loadHTML($link);
$links = $dom->getElementsByTagName('a');

foreach ($links as $link){

     $url = $link->getAttribute('href');

if($url[0]!="#" && $url[0]!=" "){

    echo $url. '<br>';
    getAlllinks($url);

    }

}

}getAlllinks("http://www.example.com");
?>

例如在 http://www.example.com

<html>
<body>
  <a href="index.php">Homepage</a>
  <a href="contact.php">Contact</a>
</body>
</html>

这里首先会显示超链接index.php和contact.php&amp;然后会显示index.php和contact.php的所有链接,或者contact.php可以是http://www.example.com/contact.php

1 个答案:

答案 0 :(得分:0)

我认为你要做的是抓取收集所有链接的整个网站。您的代码示例无法执行此操作。您要做的是加载每个页面,抓取每个页面上的每个链接,然后递送这些链接。

查看这些链接以获取更多信息:

How do I make a simple crawler in PHP?

https://en.wikipedia.org/wiki/Web_crawler http://phpcrawl.cuab.de/example.html