其他分享
首页 > 其他分享> > 爬虫(1) - 爬虫基础入门理论篇

爬虫(1) - 爬虫基础入门理论篇

作者:互联网

1.学习前置【必看】

近年来由于抓取数据而引起的纠纷越来越多,有的锒铛入狱,有的被处罚金,本人爬虫笔记学习提醒大家:爬虫有风险,采集需谨慎,写代码不能违法,写代码背后也有法律风险

1.1爬虫注意点

1.1.1遵守Robots协议

Robots协议,也称为爬虫协议、机器人协议等,全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉爬虫哪些页面可以抓取,哪些页面不能抓取

如何查看网站的rebots协议?

(1)打开浏览器,在地址栏中输入http://网站域名/robots.txt即可,以查询百度的robots协议为例;Disallow后边的目录是禁止所有搜索引擎搜索的

(2)或者借助相关网站进行查看,如站长工具等,浏览器打开http://s.tool.chinaz.com/robots,输入网站地址,点击查询即可

1.1.2.不过度采集数据

过度数据采集会对目标站点产生非常大的压力,可导致目标站点服务器瘫痪、不能访问等,相当于网络攻击。学习过程中抓取数据不可贪多,满足学习需求即可,损害他人权益的事不能做

1.1.3.不要采集隐私数据

有选择的采集数据,别人不让看的数据不要爬,私人数据不要爬,如手机号、身份证号、住址、个人财产等不要抓取,受法律保护的特定类型的数据或信息不能抓取

1.1.4.网站有声明”禁止爬虫采集或转载商业化”

当采集的站点有声明,禁止爬虫采集或转载商业化,请绕行,不让爬的数据不要爬

1.1.5.不得将抓取数据用于商业化使用

恶意利用爬虫技术抓取数据,进行不正当竞争,甚至牟取不法利益,会触犯法律,数据采集不得伤害他人利益

 

1.2.爬虫与爬虫工程师

爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本,是搜索引擎的重要组成;爬虫可以用于以下场景:搜索引擎、数据分析、人工智能、薅羊毛、抢车票等

目前市面主流的爬虫产品有:神箭手、八爪鱼、造数、后羿采集器等

爬虫工程师简单点理解就是数据的搬运工

爬虫工程师技术储备

爬虫技术怎么学

 

2.网络基础

2.1.网络协议

2.1.1什么是协议?

协议可以理解为“规则”,是数据传输和数据的解释规则,下图是简单图解

2.1.2.OSI七层参考模型

  1. 物理层:可以理解为我们的网线,进行比特流的传输
  2. 数据链路层:可以理解为我们电脑的网卡,网卡的驱动可以提供介质访问、链路管理等
  3. 网络层:网卡可以设置ip地址,进行网络寻址和路由选择
  4. 传输层:可以想象成电脑里面的应用,建立主机端到端连接
  5. 会话层:建立、维护和管理会话
  6. 表示层:处理数据格式、数据加密等
  7. 应用层:提供应用程序间通信

示例:以小明和小红利用qq软件发消息来再次讲解下osi7层模型

小明在qq软件里面给小红发了一个“hello”

数据封装

交换机:发送给路由器

路由器:发送给小红的物理层

数据解封装

2.1.3.TCP/IP模型

TCP/IP协议栈,TCP/IP协议继承ISO模型网上有的说是四层有的说是五层,四层的是将物理层没算进去,到底记哪一个,这个不冲突,都可以。

图示tcp/ip相比较iso少了表示层、会话层

TCP/IP各层实现的协议

 

2.2.HTTP协议详解

2.2.1.HTTP

HTTP协议,又称之为超文本传输协议,是互联网上应用最为广泛的一种网络协议,它是基于TCP的应用层协议;

是客户端和服务端进行通信的一种规则,它的模式非常简单,就是客户端发起请求,服务端响应请求。

2.2.2.版本分布

2.2.3.HTTP请求

2.2.4.HTTP请求方法

2.2.5.HTTP响应

 

2.2.6.HTTP响应状态码

 

2.3.解析HTTP数据流的传输过程

 

以一个经典面试题作为缩影进行讲解:

请简述:从客户端打开浏览器到服务器返回网页,中间的过程

 

2.3.1.宏观解析

1)在一个客户端上,打开浏览器,在浏览器的地址栏中,输入www.baidu.com,访问百度

2)在你敲入网址并按下回车之后,将会发生以下的事情:浏览器先尝试从Host文件中获取http://www.baidu.com/对应的IP地址,如果能获取到则直接使用hosts文件的解析结果;host文件在本地的C:\Windows\System32\drivers\etc目录下

3)如果Host文件中找不到,就会使用DNS协议来获取IP。在DNS协议中,PC会向你本地DNS求助,请求DNS服务器之后,得到百度的IP

4)接下来浏览器会请求获得的Ip地址对应的Web服务器,Web服务器接收到客户的请求并响应处理,将客户请求的内容返回给客户端浏览器

5)如果服务器正常则给你回个“OK”,状态码为200并将你要的数据传给你。你收到服务器的回复,是HTML形式的文本。浏览器必须能够理解文本的内容,并快速的渲染到屏幕上,渲染出来后,你就能看到百度的首页了

 

2.3.2.微观解析

1)域名解析:同宏观解析,通过本地host文件查找;找不到,PC请求本地DNS帮忙;最后得到域名的IP

2)建立连接:

TCP三次握手:双向连接确认过程

3)发送HTTP请求:同宏观解析,客户端发送get或post请求;服务器正常给你返回200,OK,以及返回你要的html文本;客户端对服务端给的heml文本进行解析、渲染、展示

4)断开连接:

TCP四次挥手:双向断开确认

 

标签:请求,理论,入门,爬虫,服务器,数据,服务端,客户端
来源: https://www.cnblogs.com/gltou/p/16309556.html