[英]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");
?>
<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
我认为您要尝试做的是抓取整个网站,收集所有链接。 您的代码示例无法做到这一点。 您要执行的操作将加载每个页面,抓住每个页面上的每个链接,然后递归这些链接。
查看这些链接以获取更多信息:
https://zh.wikipedia.org/wiki/Web_crawler http://phpcrawl.cuab.de/example.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.