牛骨文教育服务平台(让学习变的简单)
博文笔记

php爬虫框架crawler

创建时间:2016-02-02 投稿人: 浏览次数:171

项目简介:

github地址:https://github.com/LL233/crawler

这是一个基于php开发的爬虫框架

只需要在配置文件中写好对应参数,框架即可运行

在app文件中是使用者开发的文件

使用者的开发主要是使用hooks

程序每运行到一个地方就会触发相应的钩子,并传递给钩子函数相应的参数,使用者只要在自己的文件中写好对应的钩子函数处理即可

例如,在这个页面内容过滤完之后,会触发钩子filter_end,会传递三个参数给钩子函数,第一个参数是level,当前的层级,第二个参数data,根据用户定义的过滤规则过滤出来的数据,第三个参数url,根据用户自定义的url过滤规则过滤出来的url数据

所有钩子函数:

start

没有任何参数传递

这个钩子函数是在程序一开始执行的

filter_start

第一个参数是level,当前的层级;第二个参数是url,进入这个页面的url;第三个参数是content,这个页面的内容

这个钩子函数是在获取完这个url之后,执行过滤程序之前执行的

filter_end

第一个参数是level,当前的层级;第二个参数是data,根据用户定义的过滤规则过滤出来的数据;第三个参数url,根据用户定义的url过滤规则过滤出来的url数据

这个钩子函数是在执行完过滤程序后执行的

invalid_url

第一个参数是url,当前的链接地址

这个钩子函数是在程序打开了一个无效的url时执行的

end

没有任何参数传递

这个钩子函数是在程序执行完毕时执行的

用户使用简介:

在config文件中,app_name是用户开发文件的名称,即app目录下的Index文件,默认不填写即为index文件

hook_prefix是用户文件中钩子函数的前缀,默认的为“hook_”,在文件中写钩子函数时要加上前缀,如“hook_start”

使用者自定义的类名要和文件名一致(首字母都需大写)

使用者自定义的类需要继承Capp类,也要在构造函数中继承父类的构造函数

在使用者自定义的类中可以通过“$this->crawler”来访问crawler这一核心对象,从而操作其它核心类库来完成开发


目前这个框架还不是很完善,还有许多问题需要解决,欢迎大家提成错误和问题或建议,一定虚心接受

源码中写有大量注释,方便大家阅读源码o(∩_∩)o 


声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。