下面来看一个php模仿百度spider蜘蛛爬虫程序例子,这个代码写得比较高级了我就不分析了,大家有需要的可以进入参考一下吧.

自己用PHP写了个爬虫,基本功能已经实现,有兴趣的可以试试

脚本缺点:1.未对静态页面进行去重处理,2.未对页面内js操作后的结果进行处理

php模仿百度spider蜘蛛爬虫程序例子代码如下:<?php

//加载页面

function curl_get($url) {

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HEADER, 1);

$result = curl_exec($ch);

$code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

if ($code != '404' && $result) {

return $result;

}

curl_close($ch);

}

//获取页面url链接

function get_page_urls($spider_page_result, $base_url) {

$get_url_result = preg_match_all("/\'\"\ ]*).*?>/", $spider_page_result, $out);

if ($get_url_result) {

return $out[1];

} else {

return;

}

}

//相对路径转绝对路径

function xdtojd($base_url, $url_list) {

if (is_array($url_list)) {

foreach ($url_list as $url_item) {

if (preg_match("/^(http:\/\/|https:\/\/|javascript:)/", $url_item)) {

$result_url_list[] = $url_item;

} else {

if (preg_match("/^\//", $url_item)) {

$real_url = $base_url . $url_item;

} else {

$real_url = $base_url . "/" . $url_item;

}

//$real_url = 'http://www.sumpay.cn/'.$url_item;

$result_url_list[] = $real_url;

}

}

return $result_url_list;

} else {

return;

}

}

//删除其他站点url

function other_site_url_del($jd_url_list, $url_base) {

if (is_array($jd_url_list)) {

foreach ($jd_url_list as $all_url) {

echo $all_url;

if (strpos($all_url, $url_base) === 0) {

$all_url_list[] = $all_url;

}

}

return $all_url_list;

} else {

return;

}

}

//删除相同URL

function url_same_del($array_url) {

if (is_array($array_url)) {

$insert_url = array();

$pizza = file_get_contents("/tmp/url.txt");

if ($pizza) {

$pizza = explode("\r\n", $pizza);

foreach ($array_url as $array_value_url) {

if (!in_array($array_value_url, $pizza)) {

$insert_url[] = $array_value_url;

}

}

if ($insert_url) {

foreach ($insert_url as $key => $insert_url_value) {

//这里只做了参数相同去重处理

$update_insert_url = preg_replace('/=[^&]*/', '=leesec', $insert_url_value);

foreach ($pizza as $pizza_value) {

$update_pizza_value = preg_replace('/=[^&]*/', '=leesec', $pizza_value);

if ($update_insert_url == $update_pizza_value) {

unset($insert_url[$key]);

continue;

}

}

}

}

} else {

$insert_url = array();

$insert_new_url = array();

$insert_url = $array_url;

foreach ($insert_url as $insert_url_value) {

$update_insert_url = preg_replace('/=[^&]*/', '=leesec', $insert_url_value);

$insert_new_url[] = $update_insert_url;

}

$insert_new_url = array_unique($insert_new_url);

foreach ($insert_new_url as $key => $insert_new_url_val) {

$insert_url_bf[] = $insert_url[$key];

}

$insert_url = $insert_url_bf;

}

return $insert_url;

} else {

return;

}

}

$current_url = $argv[1];

$fp_puts = fopen("/tmp/url.txt", "ab"); //记录url列表

$fp_gets = fopen("/tmp/url.txt", "r"); //保存url列表

$url_base_url = parse_url($current_url);

if ($url_base_url['scheme'] == "") {

$url_base = "http://" . $url_base_url['host'];

} else {

$url_base = $url_base_url['scheme'] . "://" . $url_base_url['host'];

}

do {

$spider_page_result = curl_get($current_url);

//var_dump($spider_page_result);

$url_list = get_page_urls($spider_page_result, $url_base);

//var_dump($url_list);

if (!$url_list) {

continue;

}

$jd_url_list = xdtojd($url_base, $url_list);

//var_dump($jd_url_list);

$result_url_arr = other_site_url_del($jd_url_list, $url_base);

var_dump($result_url_arr);

$result_url_arr = url_same_del($result_url_arr);

//var_dump($result_url_arr);

if (is_array($result_url_arr)) {

$result_url_arr = array_unique($result_url_arr);

foreach ($result_url_arr as $new_url) {

fputs($fp_puts, $new_url . "\r\n");

}

}

} while ($current_url = fgets($fp_gets, 1024)); //不断获得url

preg_match_all("/]+href=[\"']([^\"']+)[\"'][^>]+>/", $spider_page_result, $out);

// echo a href

//var_dump($out[1]);

?>

转载随意,但请附上文章地址:-)

蜘蛛程序php,php模仿百度spider蜘蛛爬虫程序例子相关推荐

  1. 中华英才网爬虫程序解析(1)-基础的爬虫程序实现

    欢迎来到爬虫高级兼实战教程,打开你的IDE,开始python之旅吧! 中华英才网爬虫 在讲完python爬虫基础知识后,我们开始进行实战,在实战中我们会借实例来讲解爬虫的高级知识,爬虫程序已经公布于 ...

  2. java樱花,速求模仿百度问答系统的java程序。。。谢谢

    仙剑历史 1.大宇开发的第一款武侠题材RPG是 <仙剑奇侠传DOS版> 2.<仙剑奇侠传DOS版>开发耗时 两年零六个月 3.引起业内轰动的<仙剑奇侠传DOS版>发 ...

  3. 微信战狼计划之小程序开发教程 全集百度云下载

    微信战狼计划之小程序开发教程 全集百度云下载 小程序开发教程,需要的可以下载下来看看,

  4. python百度云盘搜索引擎_PHP百度云盘搜索引擎爬虫程序源码

    PHP百度云盘搜索引擎爬虫程序源码,一款基于PHP框架的百度云盘磁力搜索引擎框架程序源码,包括了网页前台后台程序,云盘爬虫搜索等一系列完整的搜索引擎相关服务内容,主要基于学习使用,当然,用户也能深度定 ...

  5. python 百度贴吧爬虫(下载图片)

    业余时用python写的百度贴吧爬虫程序,算是对学习python程序得一个练习. 本程序可以针对给定的贴吧链接,把帖子楼主的发言或者图片爬取出来,目前主要功能为下载所有楼主发的图片.爬取楼主发言的功能 ...

  6. Scrapy:运行爬虫程序的方式

    Windows 10家庭中文版,Python 3.6.4,Scrapy 1.5.0, 在创建了爬虫程序后,就可以运行爬虫程序了.Scrapy中介绍了几种运行爬虫程序的方式,列举如下: -命令行工具之s ...

  7. python如何在网络爬虫程序中使用多线程(threading.Thread)

    python如何在网络爬虫程序中使用多线程 一.多线程的基础知识 二.在网络爬虫中使用多线程 2.1 从单线程版本入手 2.2 将单线程版本改写为多线程版本 2.3 运行多线程版本程序 2.4 将多线 ...

  8. 支持web信息分类的高性能蜘蛛程序 爬虫程序 spider

    转自:小型微型计算机系统 文/高克宁 柴桥子 张斌 马安香 蜘蛛程序研究现状 对任何需要抽取大规模数据信息的网络蜘蛛,都应考虑如下几个方面的问题 1.灵活性:任何运行于复杂环境的网络蜘蛛,都需要对平台 ...

  9. 浅谈百度谷歌蜘蛛机器人活动规律

    我们大家一定知道百度和谷歌有一个蜘蛛机器人,换句话说就是百度和谷歌的一套收录网站的程序或系统,我们都称它为蜘蛛机器人,他们是程序不是人,也不是神,所以它们总有自己的活动规律,下面就来谈谈. 一.网站收 ...

最新文章

  1. zookeeper 和 dubbo 配置
  2. 1.5编程基础之循环控制_45金币
  3. 高质量C++编程指南
  4. 2021年基金什么时候布局?
  5. sqlserver 操作技巧
  6. tar 打包、压缩和备份
  7. Atititi.名字 姓名 name 起名naming spec 的构成结构规范v2 qc2.docx
  8. 10分钟入门HTML
  9. VS2008 sp1中文版下载地址
  10. JavaScript基础知识-JS数据类型
  11. php计算周长,PHP实现的简单三角形、矩形周长面积计算器分享
  12. 服务器后台怎么修改网站图片,网站后台修改图片
  13. 青岛大学的计算机专业考研分数线,青岛大学考研分数线
  14. 在Excel中如何让文字竖排
  15. NC 一些常用方法总结
  16. MTk kernel启动流程
  17. 厦门大学 软件学院 夏令营
  18. 助力武汉抗击疫情,湖北科研资料共享
  19. qpython3可以画图吗_手机qpython3如何画图
  20. Flutter中使用device_info获取设备信息

热门文章

  1. v html如何添加样式,详解三种方式解决vue中v-html元素中标签样式
  2. Python实现Excel办公自动化
  3. 电视机尺寸一览表2022
  4. u盘怎么样在w ndows7上使用,用U盘给MAC BOOK AIR安装windows7系统
  5. MAC下遨游经典版Adobe Flash过期处理方法
  6. pdf解密工具(超实用)
  7. 【Windows10+Ubuntu22.04双系统 华硕主板 B660M-plus 装机个人总结】
  8. 金额数字转换(英文、中文)
  9. 计算机一级考试题电子表格,2017计算机一级Excel模拟考试题
  10. [C#] C#深入浅出4th Edition [2]