爬虫必备(2)- 爬虫原理

爬虫必备(2)- 爬虫原理

首页休闲益智逻辑滑块更新时间:2024-05-11

学习爬虫的基础是要弄清楚其原理和运行机制。网络就像是一张巨型蜘蛛网,我们的角色就像是网上的蜘蛛,不停地寻找并获取自己需要的内容。因此,在很多网站上,Python爬虫的标志通常是一只蜘蛛

爬取过程

爬虫并没有大家想象中的那般神秘莫测,简单的可以理解为,获取页面内容并解析提取相关信息,我们主要是实现器自动化采集的流程,而整个这个流程可以称为爬取过程。接下来为大家介绍一下爬虫的基础流程。

  1. 获取网页内容

爬虫最重要且首要的任务是获取网页的内容,如html文档和json数据等,因为这里面包含了我们想要提取的所有信息。通过上一节网络基础内容,我们可以轻松获取互联网数据。后续会使用到urllib和requests等框架来完成互联网数据的请求操作。

  1. 提取数据

获取网络响应内容后,需要解析页面内容并提取出相关关键信息。我们可以利用正则表达式和lxml等库来进行操作。通过信息提取,可以使原本复杂的数据结构变得条理清晰,方便整理和分析。

  1. 存储数据

最后一步是保存数据以方便后续使用,根据获取的数据类型和用途,选择适当的存储方式。一般有txt文档、json文档或Excel文档,如果数据量大且需要结构化处理,可以存储到数据库中,如MySQL或MongoDB等。

  1. 实现自动化

计算机的主要目的是实现自动化,减轻人力劳动。虽然上述步骤看似复杂,但一旦实现自动化,就会非常简单。当数据量较大或者数据变更频繁时,自动化尤为重要。互联网中包含各种类型的数据,最常见的是网页内容(如HTML文档),但除此之外,还有可返回JSON数据(大多数API接口的返回类型),以及图片、视频和音频等。只要有对应的URL地址,爬虫就可以轻松获取到想要的数据。

就是获取有价值内容

动态内容

现在互联网开发中流行前后端分离的开发模式,并且越来越多地使用Ajax和前端模块来构建页面,因此在很多时候,我们获取到的页面内容与实际展示的并不一样。常规的请求库,在请求页面时,只能获取到html页面代码,并不能执行相关的JavaScript文件,因此会有很多数据无法直接获取到。针对这种情况,一般会采用接口分析或使用SeleniumSplash等框架来模拟JavaScript的渲染过程。

经典前后端分离框架-vue

会话维持

要了解会话维持的内容,我们首先需要了解一个前置知识,即http是无状态的。无状态的意思是服务器对浏览器的请求处理没有记忆能力,也就是说,服务器并不知道客户端是谁以及它所处的状态。

当我们使用浏览器向服务器发送请求时,服务器处理当前请求并返回处理结果。这一系列的过程是独立的,服务器不会记录前后的状态。因此,当浏览器再次访问服务器时,服务器并不知道已经和这个客户端有过对话,所以需要重新发送客户信息。

基于这种情况,我们现在有两种技术来解决这个问题。

  1. 在互联网中,通过使用会话对象(session),可以将用户的特定信息及属性存储起来,这样在应用程序访问Web时,可以从会话中获取相应的信息。如果用户的会话信息不存在,可以让客户重新登录,此时,会话信息将存储在服务器端
  2. cookies,值网站为了辨别用户身份和进行会话跟踪,并存储在客户端上的数据

session和cookies的最大区别在于它们信息存储的位置。当使用cookies存储信息时,服务器会返回一个set-cookie的字段,然后浏览器会将其存储到本地,再次访问网络时,会携带该cookies信息到服务器,从而验证cookies信息。

cookies验证流程

网络代理

代理服务器被称为网络信息的中转站,其主要功能是代理用户获取网络信息。上一章提到,浏览器向服务器发送请求,服务器接收并响应内容,如果使用代理来请求,访问路径就会发生改变。首先浏览器将请求发送给代理服务器,代理服务器会通过访问资源服务器并将资源服务器响应的内容发送给浏览器。

代理的作用:

  1. 突破 IP 限制,防止对方服务器限制。
  2. 访问团体内部资源,一般用于教育网络资源。
  3. 提高访问速度
  4. 隐藏真实 IP 地址。

爬虫代理,由于爬虫在执行过程中速度较快,一般网站会做流量限制,当同一个IP频繁访问资源的时候就会触发验证逻辑,如滑块,验证码之类的,情节严重的还会被直接封锁IP。因此,一般会通过代理IP来访问请求,期间会不断的切换代理IP防止目标服务器限制。

代理原理

查看全文
大家还看了
也许喜欢
更多游戏

Copyright © 2024 妖气游戏网 www.17u1u.com All Rights Reserved