爬虫的概念和作用

jun-1024 jun-1024     2023-03-09     759

关键词:

目录

01  爬虫的概念

02  爬虫的流程

03  HTTP协议

04  WEBSOCKET

 

  • 爬虫的概念

 

爬虫的概念

 

爬虫更官方点的名字叫数据采集,英文一般称作spider,就是通过编程来全自动的从互联网上采集数据。 比如说搜索引擎就是一种爬虫。 爬虫需要做的就是模拟正常的网络请求,比如你在网站上点击一个网址,就是一次网络请求。

 

爬虫的作用

 

现如今大数据时代已经到来,网络爬虫技术成为这个时代不可或缺的一部分,企业需要数据来分析用户行为,来分析自己产品的不足之处,来分析竞争对手的信息等等,但是这些的首要条件就是数据的采集。 这其中使用爬虫较为有名的有今日头条等公司。

 

  • 爬虫的流程

 

爬虫的本质

爬虫的本质就是自动化的去模拟正常人类发起的网络请求,然后获取网络请求所返回的数据。 跟我们人手动去点击一个连接,访问一个网页获取数据,并没有什么本质的区别。

爬虫的难点

爬虫的难点主要为两个方向: 数据的获取 一般来说我们想要抓取的网站是不希望我们去抓取他的数据的,那么这些网站就会做一些反爬虫的措施,来让我们无法去他的网站上抓取数据。所以我们也要做相应的措施去绕过这些反爬虫措施。 抓取数据的速度 我们抓取的目标的数据量,有时是非常庞大的,甚至几千万上亿的数据量,而有些甚至会要求实时的更新,所以抓取的速度也非常重要。我们一般会使用并发和分布式来解决速度的问题。

 

  • 网络请求

网络请求其实就是在互联网上一次数据的传递。 而为了数据能够在庞杂的网络中能够正确,迅速的传递给目标主机。我们定义了许多的网络协议,也就是网络传输数据的规则,来实现网络的连接。 而这些协议中,我们使用的最多的,基本上就是HTTP/HTTPS协议。

 

HTTP协议报头

重点是:User-Agent,Referer

 

HTTP请求方法

基本是使用的是GET和POST

 

状态码

200 请求已成功,请求所希望的响应头或数据体将随此响应返回。
302 请求的资源现在临时从不同的 URI 响应请求。由于这样的重定向是临时的,客户端应当继续向原有地址发送以后的请求。只有在Cache-Control或Expires中进行了指定的情况下,这个响应才是可缓存的。   新的临时性的 URI 应当在响应的 Location 域中返回。除非这是一个 HEAD 请求,否则响应的实体中应当包含指向新的 URI 的超链接及简短说明。   如果这不是一个 GET 或者 HEAD 请求,那么浏览器禁止自动进行重定向,除非得到用户的确认,因为请求的条件可能因此发生变化。   注意:虽然RFC 1945和RFC 2068规范不允许客户端在重定向时改变请求的方法,但是很多现存的浏览器将302响应视作为303响
404 请求失败,请求所希望得到的资源未被在服务器上发现。没有信息能够告诉用户这个状况到底是暂时的还是永久的。假如服务器知道情况的话,应当使用410状态码来告知旧资源因为某些内部的配置机制问题,已经永久的不可用,而且没有任何可以跳转的地址。404这个状态码被广泛应用于当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

 

Cookie和Session

cookie数据存放在客户的浏览器上,session数据放在服务器上

 

HTTPS和WebSocket协议

 

HTTP协议的缺点

HTTP协议最大的缺点就是明文传输,而在网络上数据传输的路径上有很大一部分都是暴露在公有环境下的,所以数据是很容易泄露。

 

HTTPS协议

因为HTTP的这个缺点,所以就出现了基于SSL或者TSL的HTTPS协议。

在HTTPS请求发起之前,客户端会首先向服务端发起请求,获取证书。HTTPS传输的数据是经过证书加密以后的数据,这就避免了数据泄露的风险。

HTTPS保证了安全性的同时,也降低了传输的速度,协议的速度比HTTP慢大概2-100倍。

 

WebSocket协议

 

WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。

由于HTTP 协议是一种无状态的、无连接的、单向的应用层协议。它采用了请求/响应模型。通信请求只能由客户端发起,服务端对请求做出应答处理。

 

这种通信模型有一个弊端:HTTP 协议无法实现服务器主动向客户端发起消息。

这种单向请求的特点,注定了如果服务器有连续的状态变化,客户端要获知就非常麻烦。大多数 Web 应用程序将通过频繁请求实现长轮询。轮询的效率低,非常浪费资源(因为必须不停连接,或者 HTTP 连接始终打开)。

 

在WebSocket API中,浏览器和服务器只需要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送。

浏览器通过 JavaScript 向服务器发出建立 WebSocket 连接的请求,连接建立以后,客户端和服务器端就可以通过 TCP 连接直接交换数据。

 

由于websocket出现的时间较短,应用的范围比较小,所以使用的较少。

 

爬虫的概念和作用

目录01 爬虫的概念02 爬虫的流程03 HTTP协议04 WEBSOCKET 爬虫的概念 爬虫的概念 爬虫更官方点的名字叫数据采集,英文一般称作spider,就是通过编程来全自动的从互联网上采集数据。比如说搜索引擎就是一... 查看详情

爬虫学习笔记(二十二)——mitmproxy(代码片段)

文章目录一、简介和安装1.1、概念和作用1.2、安装1.3、工具介绍二、设置代理2.1、PC端设置代理2.2、PC端安装证书2.3、移动端设置代理三、mitmdump3.1、插件使用3.2、常用事件3.2.1、request事件3.2.2、response事件3.3、下载图片一、简介... 查看详情

爬虫学习笔记(十五)——加密解密(代码片段)

文章目录一、概念和作用1.1、概念1.2、**作用**1.3、常用加密方式二、字符编码2.1、进制间转换方法(python)2.2、unicode三、Base64编码原理3.1、概念3.2、作用3.3、Base64编码表3.4、文本到base64格式的转换3.5、BASE64编码补码四、单向加密4.... 查看详情

爬虫的介绍和概念

查看详情

爬虫进阶爬虫概述基础篇(回炉重造)

爬虫概述爬虫概要1.爬虫的概念2.爬虫的作用3.爬虫的分类3.1根据被爬取网站的数量不同,可以分为:3.2根据是否以获取数据为目的,可以分为:3.3根据url地址和对应的页面内容是否改变,数据增量爬虫可以分... 查看详情

爬虫概念

...据传送到本地,在本地形成互联网网页的镜像备份。网络爬虫即起此作用,它是搜索引擎系统中很关键也很基础的构件。爬虫,实际上就是通过相应的技术,抓取页面上特定的信息。 1,爬虫框架  首先从互联网页面中精... 查看详情

爬虫学习笔记(二十一)——appium(代码片段)

一、概念和作用1.1、概念appium是一个移动App(手机应用)自动化工具。支持iOS平台和Android平台上的原生应用,web应用和混合应用。它允许测试人员在不同的平台(iOS,Android)使用同一套API来写自动化测试... 查看详情

爬虫--urllib模块(代码片段)

一.urllib库  概念:urllib是Python自带的一个用于爬虫的库,其主要作用就是可以通过代码模拟浏览器发送请求。其常被用到的子模块在Python3中的为urllib.request和urllib.parse,在Python2中是urllib和urllib2。   使用流程:指定... 查看详情

python爬虫1爬虫基础概念

爬虫基础概念网络爬虫的定义网络爬虫(Crawler)又被成为网络蜘蛛(Spider),网络机器人,网页追逐者,它是一种按照一定规则,自动的抓取万维网信息的程序或者脚本。【狭义与广义定义】狭义... 查看详情

爬虫学习笔记——scrapy-redis(代码片段)

...同地方的工作方式。作用:提高安全性和效率分布式爬虫:默认情况下,我们使用scrapy框架进行爬虫时使用的是单机爬虫,就是说它只能在一台电脑上运行,因为爬虫调度器当中的队列queue去重和set集合都只能... 查看详情

python-爬虫之scrapy(代码片段)

...0c;被设计用于爬取网络数据、提取结构性数据的开源网络爬虫框架。作用:少量的代码,就能够快速的抓取官方文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/补充ÿ 查看详情

python-爬虫之scrapy(代码片段)

...0c;被设计用于爬取网络数据、提取结构性数据的开源网络爬虫框架。作用:少量的代码,就能够快速的抓取官方文档:https://scrapy-chs.readthedocs.io/zh_CN/0.24/补充:Scrapy使用了Twisted异步网络框架,可以加快下载速... 查看详情

001爬虫的基本概念以及urllib的request和parse

...erer:表示从哪个页面跳转的Uer-Agent:浏览器和用户信息2.爬虫的分类:通用爬虫:使用搜索引擎:百度、谷歌、雅虎优点:开放性、速度快缺点:目标不明确聚焦爬虫:(主要内容)优点:目标明确、对用户的需求非常明确、返... 查看详情

如何学习python爬虫

现在之所以有这么多的小伙伴热衷于爬虫技术,无外乎是因为爬虫可以帮我们做很多事情,比如搜索引擎、采集数据、广告过滤等,以Python为例,Python爬虫可以用于数据分析,在数据抓取方面发挥巨大的作用。但是这并不意味着... 查看详情

如何入门python爬虫

现在之所以有这么多的小伙伴热衷于爬虫技术,无外乎是因为爬虫可以帮我们做很多事情,比如搜索引擎、采集数据、广告过滤等,以Python为例,Python爬虫可以用于数据分析,在数据抓取方面发挥巨大的作用。但是这并不意味着... 查看详情

如何入门python爬虫

参考技术A现在之所以有这么多的小伙伴热衷于爬虫技术,无外乎是因为爬虫可以帮我们做很多事情,比如搜索引擎、采集数据、广告过滤等,以Python为例,Python爬虫可以用于数据分析,在数据抓取方面发挥巨大的作用。但是这... 查看详情

一篇文章带你了解网络爬虫的概念及其工作原理

...与客观事实有所偏颇,有着较大的局限性。  网络爬虫通过统一资源定位符URL(UniformResourceLocator)来查找目标网页,将用户所关注的数据内容直接返回给用户,并不需要用户以浏览网页的形式去获取信息,为用户节省了时间... 查看详情

javascript——作用域和闭包概念

 js是函数级别作用域,在内部的变量,内部能都访问到,外部不能访问内部的,内部的可以访问外部的   闭包就是,拿到本不是应该属于他的东西。 当在函数内部定义了其他函数时,就创建了闭包,闭包有权访问... 查看详情