您好,登錄后才能下訂單哦!
/*
@desc:爬蟲原型
@author [Lee] <[<complet@163.com>]>
@param url 初始url
@param callback 處理業務的回調函數
@param 挖掘url的深度 默認3
*/
function crawl($url,$callback,$depth = 3){
if($depth > 0){
$depth--;
$http = new http($url);
$content = $http->get()->exec();
// 業務處理開始
call_user_func($callback,$content);
// 業務處理結束
$preg = '/<[a|A].*?href=[\'\"]{0,1}([^>\'\"\ ]*).*?>/';
$bool = preg_match_all($preg,$content,$res);
$urls = array();
if($bool){
$urls = $res[1];
}
$urls = array_unique($urls);
$info = parse_url($url);
$scheme = $info["scheme"]?:'http';
$user = $info["user"];
$pass = $info["pass"];
$host = $info["host"];
$port = $info["port"];
$path = $info["path"];
$url = $scheme . '://';
if ($user && $pass) {
$url .= $user . ":" . $pass . "@";
}
$url .= $host;
if ($port) {
$url .= ":" . $port;
}
$url .= $path;
if (is_array($urls)) {
foreach ($urls as $u) {
if (preg_match('/^http/', $u)) {
$returl = $u;
} else {
$real = $url . '/' . $u;
$returl = $real;
}
crawl($returl,$callback,$depth);
}
}
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。