PHP实现简单爬虫的方法,php实现爬虫_PHP教程
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了PHP实现简单爬虫的方法,php实现爬虫_PHP教程,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2276字,纯文字阅读大概需要4分钟。
内容图文
![PHP实现简单爬虫的方法,php实现爬虫_PHP教程](/upload/InfoBanner/zyjiaocheng/189/fc55833dddc54dcf887096db69983f16.jpg)
PHP实现简单爬虫的方法,php实现爬虫
本文实例讲述了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程序设计有所帮助。
http://www.bkjia.com/PHPjc/1039190.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/1039190.htmlTechArticlePHP实现简单爬虫的方法,php实现爬虫 本文实例讲述了PHP实现简单爬虫的方法。分享给大家供大家参考。具体如下: php/** * 爬虫程序 -- 原型...
内容总结
以上是互联网集市为您收集整理的PHP实现简单爬虫的方法,php实现爬虫_PHP教程全部内容,希望文章能够帮你解决PHP实现简单爬虫的方法,php实现爬虫_PHP教程所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。