温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

PHP实现爬虫的示例分析

发布时间:2021-06-25 14:09:41 来源:亿速云 阅读:226 作者:小新 栏目:开发技术

这篇文章主要介绍了PHP实现爬虫的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

具体如下:

<?php /**  * 爬虫程序 -- 原型  *  * 从给定的url获取html内容  *   * @param string $url   * @return string   */ function _getUrlContent($url) {   $handle = fopen($url, "r");   if ($handle) {     $content = stream_get_contents($handle, 1024 * 1024);     return $content;   } else {     return false;   }  }  /**  * 从html内容中筛选链接  *   * @param string $web_content   * @return array   */ function _filterUrl($web_content) {   $reg_tag_a = '/<[a|A].*?href=[\'\"]{0,1}([^>\'\"\ ]*).*?>/';   $result = preg_match_all($reg_tag_a, $web_content, $match_result);   if ($result) {     return $match_result[1];   }  }  /**  * 修正相对路径  *   * @param string $base_url   * @param array $url_list   * @return array   */ function _reviseUrl($base_url, $url_list) {   $url_info = parse_url($base_url);   $base_url = $url_info["scheme"] . '://';   if ($url_info["user"] && $url_info["pass"]) {     $base_url .= $url_info["user"] . ":" . $url_info["pass"] . "@";   }    $base_url .= $url_info["host"];   if ($url_info["port"]) {     $base_url .= ":" . $url_info["port"];   }    $base_url .= $url_info["path"];   print_r($base_url);   if (is_array($url_list)) {     foreach ($url_list as $url_item) {       if (preg_match('/^http/', $url_item)) {         // 已经是完整的url         $result[] = $url_item;       } else {         // 不完整的url         $real_url = $base_url . '/' . $url_item;         $result[] = $real_url;       }      }      return $result;   } else {     return;   }  }  /**  * 爬虫  *   * @param string $url   * @return array   */ function crawler($url) {   $content = _getUrlContent($url);   if ($content) {     $url_list = _reviseUrl($url, _filterUrl($content));     if ($url_list) {       return $url_list;     } else {       return ;     }    } else {     return ;   }  }  /**  * 测试用主程序  */ function main() {   $current_url = "http://hao123.com/"; //初始url   $fp_puts = fopen("url.txt", "ab"); //记录url列表   $fp_gets = fopen("url.txt", "r"); //保存url列表   do {     $result_url_arr = crawler($current_url);     if ($result_url_arr) {       foreach ($result_url_arr as $url) {         fputs($fp_puts, $url . "\r\n");       }      }    } while ($current_url = fgets($fp_gets, 1024)); //不断获得url }  main(); ?>

感谢你能够认真阅读完这篇文章,希望小编分享的“PHP实现爬虫的示例分析”这篇文章对大家有帮助,同时也希望大家多多支持亿速云,关注亿速云行业资讯频道,更多相关知识等着你来学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php
AI