php 爬虫 类,php爬虫原型
php爬虫原型
/*
@desc:爬虫原型
@author [Lee] ]>
@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 = '/\'\"\ ]*).*?>/';
$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);
}
}
}
}
©著作权归作者所有:来自51CTO博客作者Lee_吉的原创作品,如需转载,请注明出处,否则将追究法律责任
php 爬虫 类,php爬虫原型相关推荐
- 金融数据分析(三)当当网店铺商品爬虫——爬虫类书籍为例:requestsbs4
案例(二)爬虫预热 项目一:当当网店商品爬虫--爬虫类书籍为例 此案例是运用bs4库find方法对相关内容进行抓取. -*- coding: utf-8 -*- import requests imp ...
- scrapy的爬虫类总结
scrapy的爬虫类总结 scrapy存在两种爬虫类,一个是基于basic模板创建的普通爬虫类scrapy.Spider, 另一个是基于crawl的规则性爬虫类scrapy.spiders.Crawl ...
- QQ好友列表获取导出类:爬虫爬取QQ号
QQ好友列表获取类:爬虫爬取QQ号,这个个爬虫是拿来练手的,可以爬取网络中的QQ号,然后存储到本地 import urllib.request import ssl import re import ...
- python爬虫案例-Python爬虫案例集合
原标题:Python爬虫案例集合 urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里 ...
- python爬虫入门-Python 爬虫从入门到进阶之路(一)
通用爬虫和聚焦爬虫 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种. 通用爬虫 通用网络爬虫 是 捜索引擎抓取系统(Baidu.Google.Yahoo等)的重要组成部分.主要目的是将互联 ...
- python爬虫吧-Python爬虫案例集合
urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里面有urllib和urllib2; ...
- python爬虫实例-Python爬虫案例集合
urllib2 urllib2是Python中用来抓取网页的库,urllib2 是 Python2.7 自带的模块(不需要下载,导入即可使用) 在python2.x里面有urllib和urllib2; ...
- python爬虫百度百科-python爬虫(一)_爬虫原理和数据抓取
本篇将开始介绍Python原理,更多内容请参考:Python学习指南 为什么要做爬虫 著名的革命家.思想家.政治家.战略家.社会改革的主要领导人物马云曾经在2015年提到由IT转到DT,何谓DT,DT ...
- 增量式爬虫与分布式爬虫
文章目录 1.redis的安装 2.基于crawlSpider的全站数据爬取 3.分布式 4.增量式 5.scrapy提高数据爬取效率 6.虚拟环境 1.redis的安装 1.将安装包解压到一个文件夹 ...
最新文章
- quartz在集群环境下的最终解决方案
- 吴恩达机器学习入门 2018 高清视频公开,还有习题解答和课程拓展,网友:找不到理由不学!...
- CSP认证201503-2	数字排序[C++题解]:哈希表、排序、结构体
- 【数据分析】关于学习SQL的五个常见问题?
- 偶然的一次渗透从弱口令->docker逃逸
- vmware启动多个虚拟机
- apache实验报告 linux_Linux实验报告
- 数学之史:微积分的发明——变量数学的巨人之争
- timeshift备份你的Linux系统
- C#类的一些简单比较
- 相位延迟和群延迟的区别
- unity 导入gltf_Unity3D使用glTF格式三维文件,glTF在unity中如何呈现,glTF导入unity
- 对于tf.nn.sparse_softmax_cross_entropy_with_logits(logits=y,labels=tf.argmax(y_,1))的研究
- MPEG4 协议详解
- 36种漂亮的CSS3网页按钮Button样式
- android sqlite数据库代码,android sqlite数据库代码
- SDN学习继续(二)
- 骨传导有什么品牌,骨传导耳机品牌推荐
- 【项目管理一点通】(44) 用户测试(Alpha测试)
- 异常处理(六)--------SpringBoot+Maven项目运行异常:Unable to find a single main class from the following candidat
热门文章
- 数据结构与算法 / 霍夫曼树、霍夫曼编码和解码
- 电脑账户头像怎么删掉_情侣头像丨情侣头像一男一女背影
- java 多线程 start,Java 线程的run()和start()
- python测试udp端口_Linux系统的ECS实例中TCP/UDP端口测试及验证方法说明
- java redis缓存工具类_util: 对日常工作中常见的工具类进行打包:
1、数据库:DBUtil工具类
2、Redis缓存:JedisUtil工具类...
- 虚拟机拷贝出来_NETAPP存储虚拟机数据恢复案例
- XGB 调参基本方法
- Python十分适合用来开发网页爬虫
- oracle查询重复数据出现次数
- Tomcat下使用war包发布项目