【问题标题】:get all a href of entire page of given url获取给定url的整个页面的所有href
【发布时间】:2016-06-16 02:04:31
【问题描述】:

我想获取给定站点中的所有超链接。所以我写了这段代码。但它不能正常工作。它只显示给定网址的所有超链接。但我想获取给定站点的所有超链接。

<?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爬取网站

标签: php dom


【解决方案1】:

我认为您正在尝试做的是抓取整个网站以收集所有链接。您的代码示例无法做到这一点。你想做什么加载每个页面,抓取每个页面上的每个链接,这些链接上的递归。

查看这些链接了解更多信息:

How do I make a simple crawler in PHP?

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多