繁体   English   中英

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

[英]get all a href of entire page of given url

我想在给定站点中获取所有超链接。 所以我写这段代码。 但它无法正常工作。 它仅显示给定URL的所有超链接。 但我想获取给定站点的所有超链接。

<?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,然后显示index.php和contact.php的所有链接,或者contact.php可以是http://www.example.com/contact.php

我认为您要尝试做的是抓取整个网站,收集所有链接。 您的代码示例无法做到这一点。 您要执行的操作将加载每个页面,抓住每个页面上的每个链接,然后递归这些链接。

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

如何使用PHP创建简单的搜寻器?

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

暂无
暂无

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

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