全部展开
1.爬虫技术综述
网络爬虫是根据一定的规则自动抓取万维网信息的程序或脚本。它广泛应用于互联网搜索引擎或其他类似网站,可以自动收集其能访问的所有页面内容,从而获取或更新这些网站的内容和检索方式。从功能上讲,爬行动物一般分为数据采集、处理和存储三个部分。
传统爬虫从一个或几个初始网页的URL开始,获取初始网页上的URL。在抓取网页的过程中,它不断从当前网页中提取新的网址,并将其放入队列中,直到满足系统的某些停止条件。聚焦爬虫的工作流程比较复杂,需要按照一定的网页分析算法过滤掉与主题无关的链接,保留有用的链接放入URL队列等待抓取。然后,它会根据一定的搜索策略从队列中选择要抓取的网页的URL,重复上述过程,直到达到系统的某个条件。此外,爬虫抓取的所有网页都将由系统存储、分析、过滤和索引,以便以后查询和检索。对于聚焦爬虫,在这个过程中获得的分析结果也可以给后面的抓取过程提供反馈和指导。
与一般的网络爬虫相比,聚焦爬虫仍然需要解决三个主要问题:
(1)捕获目标的描述或定义;
(2)分析和过滤网页或数据;
(3)针对URL的搜索策略。
2.爬行动物原理
2.1网络爬虫的原理
网络爬虫系统的功能是下载网页数据,为搜索引擎系统提供数据源。很多大规模的web搜索引擎系统被称为基于Web数据采集的搜索引擎系统,比如Google、百度。这说明了网络爬虫系统在搜索引擎中的重要性。网页不仅包含文本信息供用户阅读,还包含一些超链接信息。网络爬虫系统通过网页中的超链接信息不断获取网络上的其他网页。正是因为这个收集过程像一个爬虫或蜘蛛在互联网上漫游,所以被称为网络爬虫系统或网络蜘蛛系统,在英语中被称为蜘蛛或爬虫。
2.2网络爬虫系统的工作原理
在网络爬虫的系统框架中,主要流程由控制器、解析器和资源库三部分组成。控制器的主要工作是在多线程中给每个爬虫线程分配工作任务。解析器的主要工作是下载网页并进行处理,主要是去掉一些JS脚本标签、CSS代码内容、空格字符、HTML标签等。爬虫的基本工作由解析器完成。资源库用于存储下载的网页资源,这些资源通常存储在大型数据库中,如甲骨文数据库,并进行索引。
控制器
控制器是web爬虫的* *控制器,主要负责根据系统发送的URL链接分配一个线程,然后启动线程调用爬虫抓取网页。
解析器
解析器是负责网络爬虫的主要部分,主要负责网页下载、网页文本处理,如过滤、提取特殊HTML标签、数据分析等。
资源库
它主要用作存储从网页下载的数据记录的容器,并提供生成索引的目标源。大中型数据库产品有:Oracle、Sql Server等。
一般情况下,Web爬虫系统会选择一些重要度较大的网站的URL(网页中超链接的数量)作为种子URL集。爬虫系统将这些种子集作为开始捕获数据的初始URL。因为网页包含链接信息,所以可以从现有网页的URL中获取一些新的URL。网页之间的指向结构可以看作一个森林,每个种子URL对应的网页就是森林中一棵树的根节点。这样,网络爬虫系统可以根据广度优先搜索或深度优先算法遍历所有网页。深度优先搜索算法可能会导致爬虫系统陷入网站,不利于搜索接近网站首页的网页信息,因此一般采用广度优先搜索算法来收集网页。网络爬虫系统首先将种子URL放入下载队列,然后简单地从队列的头部取出一个URL来下载其对应的网页。获取网页内容并存储后,我们可以通过分析网页中的链接信息得到一些新的URL,并将这些URL添加到下载队列中。然后拿出一个URL,下载它对应的网页,再解析一遍,重复直到遍历整个网络或者满足一定条件。
网络爬虫的基本工作流程如下:
1.首先,选择一部分精心选择的种子网址;
2.把这些URL放入URL队列中进行抓取;
3.从待抓取的URL队列中取出待抓取的URL,分析DNS,获取主机的ip,下载该URL对应的网页,存储在下载的网页库中。另外,把这些URL放入抓取的URL队列中;
4.分析已抓取的URL队列中的URL,分析其他URL,将URL放入待抓取的URL队列中,进入下一个周期。
2.3抓取策略
在爬虫系统中,待抓取的URL队列是一个重要的组成部分。URL队列中要抓取的URL按照什么顺序排列也是一个很重要的问题,因为这涉及到哪个页面先抓取,哪个页面后抓取。并决定这些UR