首页 > 其他分享 >01. 网络爬虫概述

01. 网络爬虫概述

时间:2023-10-05 19:11:53浏览次数:30  
标签:协议 01 加密 爬虫 秘钥 概述 HTTP 客户端

一、什么是网络爬虫

  网络爬虫(又称为网络蜘蛛、网络机器人)可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过 Python 可以很轻松地编写爬虫程序或者是脚本。简单的来说,爬虫就是通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。

网络爬虫在法律上是不被禁止的,但它具有违法风险。爬虫带来的风险主要体现在两个方面:

  1. 爬虫干扰了被访问网站的正常运行;
  2. 爬虫抓取了受到法律保护的特定类型的数据或信息;

二、爬虫的分类

  • 通用爬虫:抓取系统重要组成部分,抓取的是一整张页面的数据;
  • 聚焦爬虫:建立在通用爬虫的基础之上,抓取的是页面中特定的局部内容;
  • 增量式爬虫:检测网站中数据更新的情况,只会抓取网站用最新更新出来的数据;

三、反爬机制与反反爬策略

  一些网站通过制定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取,这样的机制被称为 反爬机制

  爬虫程序可以通过指定相关的策略或者技术手段,破解一些网站具备的反爬机制,从而可以获得这些网站中相关的数据,这就是 反反爬策略

robots.txt 协议,规定了网站中哪些数据可以被爬取,哪些数据不可以被爬取。它是一个君子协议。

四、HTTP协议与HTTPS协议

  HTTP 全称是 Hypertext Transfer Protocol,中文名是 超文本传输协议,其作用是把超文本数据从网络传输到本地浏览器,能够确保高效而准确地传输超文本文档。

  爬虫过程中,HTTP 协议中常用的请求头信息:

请求头信息 含义
User-Agent 请求载体的身份标识
Connection 请求完毕后,是断开连接还是保存连接1

  爬虫过程中,HTTP 协议中常用的响应头信息

响应头信息 col2
Content-Type 服务器响应回客户端的数据类型

  HTTPS 全称是 Hypertext Transfer Protocol over Secure Socket Layer,是以安全为目的地 HTTP 通道,简单讲就是 HTTP 的安全版,即在 HTTP 下加入 SSL 层,简称 HTTPS。

  HTTPS 的安全基础是 SSL,因此通过该协议传输的内容都是经过 SSL 加密的,SSL 的主要作用有以下两种:

  1. 建立一个信息安全通道,保证数据传输的安全性;
  2. 确认网站的真实性。凡是使用 HTTPS 协议的网站,都可以通过单击浏览器地址栏的锁头标志来查看网站认证之后的真实信息,此外还可以通过 CA 机构颁发的安全签章来查询。

  HTTP 和 HTTPS 协议都属于计算机网络的应用层协议,其下层是基于 TCP 协议实现的,TCP 协议属于计算机网络中的传输层协议,包括建立连接时的三次握手和断开时的四次挥手过程。

五、常见的加密方式

【1】、对称秘钥加密

  客户端向服务器发送一条信息,首先客户端会采用已知的算法对信息加密,比如 MD5 加密或者 Base64 加密,接收端会加密的信息进行解密的时候需要用到秘钥,中间也会传递秘钥(加密和解密的秘钥是同一个)。秘钥在传输中间是被加密的。这种方式看起来安全,但是仍有潜在的危险。一旦被窃听,或者信息被挟持,就有可能破解秘钥,从而破解其中的信息。因此,”共享秘钥加密“ 这种方式存在安全隐患。

【2】、非对称秘钥加密

  非对称秘钥使用的时候有两把锁,一把叫做 ”私有秘钥“,一把是 ”公开秘钥“。使用非对称加密的加密方式时,服务器首先告诉客户端按照自己给定的公开秘钥进行加密处理,客户端按照公开秘钥加密以后,服务器接收到信息在通过自己的私有秘钥进行加密,这样做的好处就是解密的根本不会进行传输,因此也就避免了被挟持的风险。就算公开秘钥被窃听者拿到了,他也很难机进行解密。这是因为解密过程时对离散对数求值,这可不是轻而易举就能做到的事。

  但是,非对称加密也存在以下缺点:

  • 如何保证接收端向发送端发出公开秘钥的时候,发送端确保接收到的是预先要发送的,而不会被挟持可能被串改的。只要是发送秘钥,就有可能有被挟持的风险;
  • 非对称加密的方式效率比较低。它处理起来更为复杂,通信过程中使用就有一定的效率问题而影响通信速度;

【3】、证书秘钥加密

  数字证书认证机构是客户端与服务器都可信赖的第三方机构,证书的具体传播过程如下:

  服务器的开发者携带公开秘钥,向数字证书认证机构提出公开秘钥的申请。数字证书认证机构在认清申请者的身份,审核通过以后,会对开发者申请的公开秘钥做数字签名,然后分配这个已签名的公开秘钥,并将秘钥放在证书里面,绑定在一起;

  服务器将这份数字证书发送给客户端,因为客户端也认可证书机构,客户端可以通过数字证书中的数字签名来验证公钥的真伪,来确保服务器传过来的公开秘钥是真实的。一般情况下,证书的数字签名是很难被伪造的,这取决于认证机构的公信力。一旦确认信息无误后,客户端就会通过公钥对报文进行加密发送,服务器接收到以后自己的秘钥进行解密。

标签:协议,01,加密,爬虫,秘钥,概述,HTTP,客户端
From: https://www.cnblogs.com/kurome/p/17743766.html

相关文章

  • 【基环树 | 题解】P5022 [NOIP2018 提高组] 旅行
    前言一日知基环树弱,固补题。关于基环树基环树定义一个环,环上每个点都有一颗以该点为根的树,如下图为一棵基环树关于基环树常规思路通常来说基环树常规思路是先处理环上树的结果,后通过树的结果来处理换上结果。具体处理方式依照题目来定。然而只是通常来说因为基环树的问......
  • [极客大挑战 2019]Secret File
    查看源代码发现一个php文件,进行访问点击了一下,啥也没有退回去重新查看发现有个文件,访问发现是刚才那个页面,burp进行抓包看看发现了个隐藏文件访问secr3t.php通过代码审计,包含一个file的文件,用get方式传输,如果存在../,tp,input,data等字符就会输出Ohno构造payload:?file=flag.p......
  • 【分享】Windows XP N合1转自XP终极珍藏系列2014,个人做了一些xp软件包的添加
    添加的软件包见下图  WindowsXPSP3多合一"终极珍藏"第一版微软于2014/04/08公告停止XP服务支持。意思也就是从此你使用XP将不再收到XP系统漏洞补丁推送当然,如果你不在乎系统漏洞补丁这方面,你的日常应用又必须XP兼容支持,你依然可以安装上安全防卫软件继续长期使用。......
  • The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online (The 2nd Universal Cup
    The2018ACM-ICPCAsiaQingdaoRegionalContest,Online(The2ndUniversalCup.Stage1:Qingdao)J-PresstheButton\(1\leqa,b,c,d\leq10^6\)题解容易发现存在循环节,每次位于\(gcd(a,c)\)的倍数的位置所以我们考虑处理一个循环节内的情况如果\(v\le......
  • 软件架构设计师历年论文题目(2012-2)
    2.论决策支持系统的开发与应用决策支持系统(DecisionSupportSystems,DSS)是以管理科学、运筹学、控制论和行为科学为基础,以计算机技术、仿真技术和信息技术为手段,以人机交互方式进行半结构化和非结构化决策的信息系统。它调用各种信息资源,并提供各种分析工具,为决策者提供分析问题......
  • 软件架构设计师历年论文题目(2012-3)
    论企业应用系统的数据持久层架构设计数据持久层(DataPersistenceLayer)通常位于企业应用系统的业务逻辑层和数据源层之间,为整个项目提供一个高层、统一、安全、并发的数据持久机制,完成对各种数据进行持久化的编程工作,并为系统业务逻辑层提供服务。它能够使程序员避免手工编写访问......
  • 软件架构设计师历年论文题目(2012-4)
    论基于架构的软件设计方法及应用基于架构的软件设计(Architecture-BasedSoftwareDesign,ABSD)方法以构成软件架构的商业、质量和功能需求等要素来驱动整个软件开发过程。ABSD是一个自顶向下,递归细化的软件开发方法,它以软件系统功能的分解为基础,通过选择架构风格实现质量和商业需......
  • 软件架构设计师历年论文题目(2011-4)
    论软件需求获取技术及应用软件需求是指用户对新系统在功能、行为、性能、设计约束等方面的期望。软件需求获取是一个确定和理解不同的项目干系人的需求和约束的过程。需求获取是否科学、准备充分,对获取的结果影响很大,这是因为大部分用户无法完整地描述需求,而且也不可能看到系统......
  • 软件架构设计师历年论文题目(2012-1)
    论企业信息化规划的实施与应用企业信息化建设是一项长期而艰巨的任务,不可能在短时间内完成。信息化规划是企业信息化建设的纲领和向导,是信息系统设计和实施的前提和依据。信息化规划以整个企业的发展目标和战略、企业各部门的目标与功能为基础,同时结合行业信息化方面的实践和对信......
  • 第四节人工智能 考点13 人工智能的概述 1.人工智能的概念 人工智能 (Artificial Int
    第四节人工智能考点13人工智能的概述1.人工智能的概念 人工智能(ArtificialIntelligence,AI)是研究怎样让计算机做一些通常认为需要智能才能做的事情,又称机器智能主要研究智能机器所执行的通常与人类智能有关的功能,如判断推理、证明、识别、感知、理解、设计、思考、规划、学......