什么是爬虫网络爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人), 是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
通俗的讲: 就是模拟客户端发起网络请求,接收请求的响应,按照一定的规则,自动的抓取互联网信息的程序。
原则上只要浏览器能够做的事情,爬虫都能够实现。
爬虫的基本原理:
我们把互联网比喻为一张大网,网络爬虫我们想象为网上的蜘蛛,网页与网页之间的连接我们理解为节点,爬虫就相当于是访问网页,获取网页的信息,又通过节点可以爬取另一个网站,然后不停的通过一个个节点即访问一个个网页,这样网站的数据就可以被我们获取下来了。
爬虫的用途
- 搜索引擎
- 咨询新闻网站
- 购物助手(慧慧购物)
- 数据分析与研究积累原始数据资源
- 抢票软件等
网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种.
- 通用爬虫
通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份。
第一步:抓取网页 搜索引擎网络爬虫的基本工作流程如下:
- 1.首先选取一部分的种子URL,将这些URL放入待抓取URL队列;
- 2.取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。
- 3.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环....
搜索引擎如何获取一个新网站的URL的途径和方式:
- 1.新网站向搜索引擎主动提交网址:如百度
- 2.在其他网站上设置新网站外链(尽可能处于搜索引擎爬虫爬取范围)
- 3.搜索引擎和DNS解析服务商(如DNSPod等)合作,新网站域名将被迅速抓取。
Robots协议:
- (也叫爬虫协议、机器人协议等),全称是“网络爬虫排除准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎哪些页面可以抓取,哪些页面不能抓取.
例如:
淘宝网:https://www.taobao.com/robots.txt
腾讯网: http://www.qq.com/robots.txt
User-agent: Baiduspider(识别是哪家的爬虫)
Allow: /article (允许爬取的目录)
Allow: /oshtml
Allow: /ershou
Allow: /$
Disallow: /product/ (不允许爬取的目录)
Disallow: /
第二步:数据存储 搜索引擎通过爬虫爬取到的网页,将数据存入原始页面数据库。其中的页面数据与用户浏览器得到的HTML是完全一样的。 搜索引擎蜘蛛在抓取页面时,也做一定的重复内容检测,一旦遇到访问权重很低的网站上有大量抄袭、采集或者复制的内容,很可能就不再爬行。
第三步:预处理
搜索引擎将爬虫抓取回来的页面,进行各种步骤的预处理。
- 提取文字
- 中文分词
- 消除噪音(比如版权声明文字、导航条、广告等……)
- 索引处理
- 链接关系计算
- 特殊文件处理 .... 除了HTML文件外,搜索引擎通常还能抓取和索引以文字为基础的多种文件类型,如 PDF、Word、WPS、XLS、PPT、TXT 文件等。我们在搜索结果中也经常会看到这些文件类型。 但搜索引擎还不能处理图片、视频、Flash 这类非文字内容,也不能执行脚本和程序。
第四步:提供检索服务,网站排名
搜索引擎在对信息进行组织和处理后,为用户提供关键字检索服务,将用户检索相关的信息展示给用户。
- 根据页面链接的访问量进行网站排名,这样Rank值高的网站在搜索结果中会排名较前
- (竞价排名)也可以直接花钱购买搜索引擎网站排名,简单粗暴。
七层协议
目的:
- OSI 七层模型通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯,因此其最主要的功能就是帮助不同类型的主机实现数据传输
- 应用层:用户的应用程序提供网络服务
- 表示层:主要功能是定义数据格式及加密即对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解,并按照一定的格式传送给会话层
- 会话层:会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话.
- 传输层:tcp/udp
- 网路层:路由器
- 数据链路层:网桥,交换机
- 物理层:网卡,网线,集线器,中继器,调制解调器
浏览器发送HTTP请求的过程:
- 当用户 在浏览器的地址栏中输入一个URL并按回车键之后(会先经过DNS服务将域名解析为ip),浏览器会向HTTP服务器发送HTTP请求。HTTP请求主要分为“Get”和“Post”两种方法。
- 当我们在浏览器输入URL http://www.baidu.com 的时候,浏览器发送一个Request请求去获取 http://www.baidu.com 的html文件,服务器把Response文件对象发送回给浏览器。
- 浏览器分析Response中的 HTML,发现其中引用了很多其他文件,比如Images文件,CSS文件,JS文件。 浏览器会自动再次发送Request去获取图片,CSS文件,或者JS文件。
- 当所有的文件都下载成功后,网页会根据HTML语法结构,完整的显示出来了。
网友评论