使用 cURL 获取网站中的所有链接(不仅仅是页面)

Tom*_*man 6 php curl hyperlink

我使用以下 PHP 脚本获取给定页面上的所有链接,但我试图获取整个网站上的所有链接。

<?php

    function urlLooper($url){

        $urlArray = array();

        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($ch);

        $regex='|<a.*?href="(.*?)"|';
        preg_match_all($regex,$result,$parts);
        $links=$parts[1];
        foreach($links as $link){
            array_push($urlArray, $link);
        }
        curl_close($ch);

        foreach($urlArray as $value){
            echo $value . '<br />';
        }
    }

    $url = 'http://www.justfundraising.com/';
    urlLooper($url);
Run Code Online (Sandbox Code Playgroud)

?>

有没有办法使用cURL(或任何其他方法)来获取网站上的所有链接?如果您想知道,我可以访问服务器。

我的想法是从主页生成所有链接,然后通过相同的函数将这些链接传回,以获得一个新的链接列表,忽略任何重复项。我想这样我会得到所有的页面。

任何帮助将不胜感激!

Mar*_*c B 2

卷曲只获取你告诉它的内容。它不会为您解析内容,也不会递归地获取内容引用的“外部”资源。您必须自己翻阅返回的 HTML,解析图像/脚本链接,并使用更多的 curl 调用来获取这些链接。

换句话说,您必须复制wget,这归结为:只需使用wget