互联网是一张大网,而爬虫便是在网上爬行的蜘蛛,当到蜘蛛网的每个节点(即网络节点 / 跳转链接)蜘蛛爬到这里相当于访问并获取到了当前网页的信息,随着网页链接的关系蜘蛛可以顺着节点逐渐访问到,这样网站的数据就会逐渐被爬取下来了!
Can I climb to your heart~~
一、爬虫概述
网络爬虫(网页蜘蛛 / 网络机器人 / 网页追逐着 / 蚂蚁 / 自动索引 / 模拟程序 ),是一种按照一定的规则,自动爬取万维网信息的程序或者脚本,简单说就是获取网页并提取和保存信息的自动化程序。
二、爬虫分类
-
通用网络爬虫
简介:
又称全网爬虫,从URL扩充到整个Web,主要为门户站点搜索引擎和大型web服务提供商采集数据,爬行范围和数量巨大,对爬行速度和存储空间要求较高,对爬行页面的顺序要求相对较低。
策略分类
(1)深度优先策略(按照深度低 → 高,依次访问下一级网页链接,直到不能深入为止[ 遍历完所有链接 ],适合垂直搜索或者站内搜索)
(2)广度优先策略(按照内容层次深浅爬行网页,较浅目录层次的页面首先被爬行,同一层次页面爬行完毕后,再深入下一层继续爬行,无需存储大量中间节点,不足之处在于需要较长时间才能爬到目录深层较深的页面) -
聚焦网络爬虫
又称主题网络爬虫,只需要爬行预先定义好的主题相关页面,极大节省了硬件和网络资源,和普通相比爬行策略实现的关键是评价页面内容和链接重要性,不同方法计算的重要性不同,由此导致链接访问顺序不同。 -
增量式网络爬虫
简介
指对已下载网页采取增量式更新只爬行新产生的或已经发生变化网页的爬虫,能够在一定程度上保证爬行的页面时尽可能新的页面。及时更新已爬行的网页,减少时间和空间上耗费,但是增加了爬行算法的复杂度。
目标
保持本地页面几种存储的页面为最新页面和提高本地页面集中页面的质量。 -
Deep Web爬虫
简介
指大部分不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的web页面。
三、爬虫过程
- 获取网页(通过爬行获取网页源代码,从中提取数据)
- 提取信息(在爬行的网页源代码中采用正则表达式提取需要的数据,)
- 保存数据(将提取的信息保存到某处以便后续使用,可以为TXT / JSON文本,也可以保存在数据库:Mysql / MongoDB,也可以利用ftp协议保存到远程服务器等)
- 自动化程序(持续高效的代替人工自动化提取定制的大量数据并进行各种异常处理、错误重试等操作)
四、爬行对象
对应URL的基于HTTP / HTTPS协议的各种数据(HTML源代码、JSON数据、CSS / JavaScript配置文件、二进制数据,如图片、音频等)