写在前面

说起爬虫想必大家都不陌生,莫说是代码的学习者,就连不怎么接触网络的人现在都或多或少的听过这个词,但大部分人总会把爬虫和Python联系在一起,其实Python在编写爬虫是固然有它的优点,但像Java,Go,PHP这些语言同样在某些情况下拥有其自己的优势。这次,我就把自己对于PHP爬虫的简单应用记录下来,一方面是给自己做一个总结,一方面也是为了给初学者一点帮助。

什么是爬虫

首先了解一下什么是网络爬虫?(这里仅仅是个了解,急于速成的朋友可以跳过)不知道大家有没有搜过百度。

网络爬虫(又称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

这里百度给出的答案,其实搜索引擎的核心之一就是网络爬虫,众所周知,百度搜索引擎的爬虫名字叫做百度蜘蛛(Baiduspider),它就是百度搜索引擎的自动程序,它每天都会在海量的互联网信息中进行爬取,收集网络信息中的网页图片视频等信息,然后当用户进行搜索的时候,搜索引擎就将爬虫搜集的信息按照它自己的算法给用户展现出来。
像搜索引擎这种把目标资源定位为整个互联网的爬虫我们称之为通用网络爬虫或者叫作全网爬虫,与其相对应的是按照预先定义好的主题有选择地进行相关网页爬取的一种爬虫,我们称之为聚焦网络爬虫或者主题网络爬虫。其实我们自己一般都是应用的聚焦网络爬虫。

网络爬虫的分类

  • · 通用网络爬虫
  • · 聚焦网络爬虫
  • · 增量式网络爬虫
  • · 深层网络爬虫

前两种前面已经提过了,增量式网络爬虫简单说就是为了节省资源消耗只有在内容更新的地方更新,未改变的地方不更新,深层网络爬虫指的是无法直接访问的网页爬取。概念性质的东西就不过多赘述,感兴趣的可以自行搜索。

爬虫的基本流程

最基本的网络爬虫工作原理或者说是工作流程,大致如下:

  • 1.获取初始URL,该URL为用户自己定制的初始爬取网页。
  • 2.爬取对应URL地址的网页时,获取新的URL地址。
  • 3.将新的URL地址放到URL队列中。
  • 4.从队列中读取新的URL,然后依据新的URL爬取网页,同时从新的网页中获取新的URL地址,重复上述的爬取过程。
  • 5.设置停止条件,当爬虫满足停止条件时停止爬取。

基本概念内容有个大致的了解就可以直接在实战中进行学习了。