我使用以下PHP脚本获取给定页面上的所有链接,但我试图获取整个网站上的所有链接。使用cURL获取网站中的所有链接(不仅是页面)
<?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);
?>
有没有办法使用卷曲(或者坦白任何其他方法)来获取网站上的所有链接?如果您想知道,我可以访问服务器。
我的想法是从主页生成所有链接,然后通过相同的函数传回这些链接,以获得忽略任何重复链接的新链接列表。我以这种方式得到所有的页面。
任何帮助将不胜感激!
你可以调查'phpQuery'从而简化了页面的检索和分析,从而构建一个简单的蜘蛛比手动不太繁琐卷曲和文本提取方法。 – mario
上面的脚本刚刚帮了我很大的忙,谢谢=) – RayZor
我用[this](http://blog.viktorkelemen.com/2011/07/get-links-from-page-with-bash.html);不知道它是否会有所帮助。 –