互联网爬虫的工作原理
爬虫定义、组成、类型
1.1爬虫定义
爬虫是一个抓取网页的计算机程序,它在互联网中漫游,发现和搜集信息。日夜不停地运行,尽可能多、尽可能快地搜集各种类型的新信息,同时因为互联网上的信息更新很快,所以还要定期更新已经搜集过的旧信息,以避免死连接和无效连接。
1.2第一个爬虫
RBSE(Eichmann,1994)是第一个发布的爬虫。它有两个基础程序。第一个是“spider”,抓取队列中的内容到一个关系数据库中,第二个程序是“mite”,是一个修改后的www的ASCII浏览器,负责从网络上下载页面。
1.3日常生活接触
Baiduspider,Googlebot。
1.4爬虫组成
网络爬虫主要由控制器,解析器,资源库组成。
中央控制器:根据系统传过来的URL链接,分配一线程,启动线程调用爬虫爬取网页。
解析器:是爬虫的主要部分,负责下载网页,对网页的文本进行处理,如过滤功能,抽取特殊HTML标签的功能,分析数据功能。
资源库:主要是用来存储网页中下载下来的数据记录的容器,并提供生成索引的目标源。中大型的数据库产品有:Oracle、SqlServer等。
1.5爬虫类型
一般分传统爬虫和聚集爬虫。
(1)传统爬虫,从一个或若干初始网页的URL开始,获得初始网页上的URL,抓取之后,通过源码解析来获得想要的内容。
(2)聚焦爬虫:根据一定的网页分析算法过滤与主题无关的链接,重复上述过程,直到达到系统的某一条件时停止所有被爬虫抓取的网页将会被系统存贮。
抓取对象
抓取对象:静态网页、文件对象、动态网页、特殊内容。
特殊内容:比如RSS、XML数据,情况特殊需特殊处理。如新闻的滚动新闻页面,需要爬虫不停地监控扫描,发现新内容马上就进行抓取。
爬虫成本
使用爬虫的代价包括:
(1)网络资源:在很长一段时间,爬虫使用相当的带宽高度并行地工作。
(2)服务器超载:尤其是对给定服务器的访问过高时。
(3)逻辑糟糕的爬虫,可能导致服务器或者路由器瘫痪,或者会尝试下载自己无法处理的页面。
个人爬虫,如果过多的人使用,可能导致网络或者服务器阻塞。
比网络爬虫的功能更加强大,它能够采集新闻、论坛、微博、微信等媒介上的信息,可以这样说,只要是互联网上公开可见的信息,我们的系统都可以采集。乐思采集软件系的主要功能是批量而精确地将互联网目标网页中的半结构化数据抽取为结构化的记录,保存在本地数据库中,以便进一步分析使用。
爬虫质量
新鲜度和过时性
爬虫的目标是尽可能高的提高页面的新鲜度
同时降低页面的过时性
爬虫策略及优化
5.1一般抓取方法:
(1)从一个起始URL集合开始,以一定的规则循环在互联网中发现信息。这些起始URL可以是任意的URL,但常常是一些非常流行、包含很多链接的站点(如Yahoo!)
(2)划分:将Web空间按照域名、IP地址或国家域名划分,每个搜索器负责一个子空间的穷尽搜索。
5.2抓取策略
网页的抓取策略可以分为深度优先、广度优先和最佳优先三种。
深度优先在很多情况下会导致爬虫的陷入(trapped)问题。
目前常见的是广度优先和最佳优先方法。
5.3策略选择
(1)选择策略,决定所要下载的页面;
①重新访问策略,决定什么时候检查页面的更新变化;
②平衡礼貌策略,指出怎样避免站点超载;
②并行策略,指出怎么协同达到分布式抓取的效果;
(2)提示:为了获取更好的抓取策略,更多有关网页质量的信息应该考虑进去。
5.4注意事项
爬虫开发的主要问题是性能和反封锁。
很多时候,采用高并发高频率抓取数据是可行的,前提是目标站点没有采用任何反爬措施(访问频率限制、防火墙、验证码……)。
更多时候,有价值的信息,一定伴随着严格的反爬措施,一旦ip被封,什么组件都没戏了。
爬虫协议(状态码)
Robots协议
Robots协议(也称为爬虫协议、机器人协议等),
全称是“网络爬虫排除标准”(RobotsExclusionProtocol),
网站通过Robots协议告诉搜索引擎哪些页面可以抓取,
哪些页面不能抓取。
.htaccess文件是Apache服务器中的一个配置文件,它负责相关目录下的网页配置。
通过htaccess文件,可以帮我们实现:网页301重定向、自定义404错误页面、改变文件扩展名、允许/阻止特定的用户或者目录的访问、禁止目录列表、配置默认文档等功能。
HTTP状态码通常分为5种类型,分别以1~5五个数字开头,由3位整数组成:
200:请求成功处理方式:获得响应的内容,进行处理
201:请求完成,结果是创建了新资源。新创建资源的URI可在响应的实体中得到处理方式:爬虫中不会遇到
202:请求被接受,但处理尚未完成处理方式:阻塞等待
204:服务器端已经实现了请求,但是没有返回新的信息。如果客户是用户代理,则无须为此更新自身的文档视图。处理方式:丢弃
300:该状态码不被HTTP/1.0的应用程序直接使用,只是作为3XX类型回应的默认解释。存在多个可用的被请求资源。处理方式:若程序中能够处理,则进行进一步处理,如果程序中不能处理,则丢弃301:请求到的资源都会分配一个永久的URL,这样就可以在将来通过该URL来访问此资源处理方式:重定向到分配的URL302:请求到的资源在一个不同的URL处临时保存处理方式:重定向到临时的URL
304请求的资源未更新处理方式:丢弃
400非法请求处理方式:丢弃
401未授权处理方式:丢弃
403禁止处理方式:丢弃
404没有找到处理方式:丢弃
5XX回应代码以“5”开头的状态码表示服务器端发现自己出现错误,不能继续执行请求处理方式:丢弃
Copyright © 2010-2018 中国舆情网 版权所有 | 中国舆情网简介
网络文化经营许可证 广播电视节目制作经营许可证 电信增值业务经营许可证
编辑:tougao@yuqingz.com 运营:operate@yuqingz.com
本网站所刊载信息,不代表中国舆情网观点。转载本网站原创信息请注明出处。
网站地图 | XML地图 | 手机版 | 电脑版 | 标签