蜘蛛程序php,php模仿百度spider蜘蛛爬虫程序例子
下面来看一个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)-基础的爬虫程序实现
欢迎来到爬虫高级兼实战教程,打开你的IDE,开始python之旅吧! 中华英才网爬虫 在讲完python爬虫基础知识后,我们开始进行实战,在实战中我们会借实例来讲解爬虫的高级知识,爬虫程序已经公布于 ...
- java樱花,速求模仿百度问答系统的java程序。。。谢谢
仙剑历史 1.大宇开发的第一款武侠题材RPG是 <仙剑奇侠传DOS版> 2.<仙剑奇侠传DOS版>开发耗时 两年零六个月 3.引起业内轰动的<仙剑奇侠传DOS版>发 ...
- 微信战狼计划之小程序开发教程 全集百度云下载
微信战狼计划之小程序开发教程 全集百度云下载 小程序开发教程,需要的可以下载下来看看,
- python百度云盘搜索引擎_PHP百度云盘搜索引擎爬虫程序源码
PHP百度云盘搜索引擎爬虫程序源码,一款基于PHP框架的百度云盘磁力搜索引擎框架程序源码,包括了网页前台后台程序,云盘爬虫搜索等一系列完整的搜索引擎相关服务内容,主要基于学习使用,当然,用户也能深度定 ...
- python 百度贴吧爬虫(下载图片)
业余时用python写的百度贴吧爬虫程序,算是对学习python程序得一个练习. 本程序可以针对给定的贴吧链接,把帖子楼主的发言或者图片爬取出来,目前主要功能为下载所有楼主发的图片.爬取楼主发言的功能 ...
- Scrapy:运行爬虫程序的方式
Windows 10家庭中文版,Python 3.6.4,Scrapy 1.5.0, 在创建了爬虫程序后,就可以运行爬虫程序了.Scrapy中介绍了几种运行爬虫程序的方式,列举如下: -命令行工具之s ...
- python如何在网络爬虫程序中使用多线程(threading.Thread)
python如何在网络爬虫程序中使用多线程 一.多线程的基础知识 二.在网络爬虫中使用多线程 2.1 从单线程版本入手 2.2 将单线程版本改写为多线程版本 2.3 运行多线程版本程序 2.4 将多线 ...
- 支持web信息分类的高性能蜘蛛程序 爬虫程序 spider
转自:小型微型计算机系统 文/高克宁 柴桥子 张斌 马安香 蜘蛛程序研究现状 对任何需要抽取大规模数据信息的网络蜘蛛,都应考虑如下几个方面的问题 1.灵活性:任何运行于复杂环境的网络蜘蛛,都需要对平台 ...
- 浅谈百度谷歌蜘蛛机器人活动规律
我们大家一定知道百度和谷歌有一个蜘蛛机器人,换句话说就是百度和谷歌的一套收录网站的程序或系统,我们都称它为蜘蛛机器人,他们是程序不是人,也不是神,所以它们总有自己的活动规律,下面就来谈谈. 一.网站收 ...
最新文章
- zookeeper 和 dubbo 配置
- 1.5编程基础之循环控制_45金币
- 高质量C++编程指南
- 2021年基金什么时候布局?
- sqlserver 操作技巧
- tar 打包、压缩和备份
- Atititi.名字 姓名 name 起名naming spec 的构成结构规范v2 qc2.docx
- 10分钟入门HTML
- VS2008 sp1中文版下载地址
- JavaScript基础知识-JS数据类型
- php计算周长,PHP实现的简单三角形、矩形周长面积计算器分享
- 服务器后台怎么修改网站图片,网站后台修改图片
- 青岛大学的计算机专业考研分数线,青岛大学考研分数线
- 在Excel中如何让文字竖排
- NC 一些常用方法总结
- MTk kernel启动流程
- 厦门大学 软件学院 夏令营
- 助力武汉抗击疫情,湖北科研资料共享
- qpython3可以画图吗_手机qpython3如何画图
- Flutter中使用device_info获取设备信息
热门文章
- v html如何添加样式,详解三种方式解决vue中v-html元素中标签样式
- Python实现Excel办公自动化
- 电视机尺寸一览表2022
- u盘怎么样在w ndows7上使用,用U盘给MAC BOOK AIR安装windows7系统
- MAC下遨游经典版Adobe Flash过期处理方法
- pdf解密工具(超实用)
- 【Windows10+Ubuntu22.04双系统 华硕主板 B660M-plus 装机个人总结】
- 金额数字转换(英文、中文)
- 计算机一级考试题电子表格,2017计算机一级Excel模拟考试题
- [C#] C#深入浅出4th Edition [2]