【发布时间】:2011-10-25 06:06:44
【问题描述】:
我使用以下 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);
?>
有什么方法可以使用 cURL(或者坦率地说任何其他方法)来获取网站上的所有链接?如果您想知道,我可以访问服务器。
我的想法是从主页生成所有链接,然后通过相同的函数将这些链接传回,以获得忽略任何重复的新链接列表。我想这样我会得到所有的页面。
任何帮助将不胜感激!
【问题讨论】:
-
您可以研究
phpQuery,它简化了页面检索和解析,允许构建一个简单的蜘蛛,而不是手动卷曲和文本提取方法。 -
您上面的脚本对我帮助很大,谢谢 =)
-
我用过this;不确定它是否会有所帮助。