热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python爬虫引入

什么是爬虫?通过编写程序,模拟浏览器上网,让其在互联网上抓取数据的过程。爬虫的价值实际应用抓取互联网上的数据,为我所用。就业爬虫究竟是合法还是非法的?在法律中不被禁止具有违法风险善




什么是爬虫?

  • 通过编写程序,模拟浏览器上网,让其在互联网上抓取数据的过程。

爬虫的价值
  • 实际应用
    • 抓取互联网上的数据,为我所用。
  • 就业

爬虫究竟是合法还是非法的?
  • 在法律中不被禁止
  • 具有违法风险
  • 善意爬虫/恶意爬虫

爬虫带来的风险可以体现在如下两个方面
  • 爬虫干扰了被访问网站的正常运营
  • 爬虫抓取了受到法律保护的特定类型的数据或信息

如何在编写爬虫的过程中避免违反法律呢
  • 时常优化自己的程序,避免干扰被访问网站的正常运行
  • 在使用、传播爬取到的数据时,审查抓取到的内容,如果发现了涉及到用户隐私或商业机密等敏感内容,我们需要及时停止爬取或传播

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

反爬机制
  • 门户网站,可以通过指定相应的策略或者技术手段,防止爬虫程序进行网站数据的爬取。

反反爬策略
  • 爬虫程序可以通过制定相关的策略或者技术手段,破解门户网站中具备的反爬机制,从而可以获取门户网站中相关的数据。

robots.txt协议(君子协议)
  • 规定了网站中哪些数据可以被爬虫爬取哪些数据不可以被爬取。

http协议
  • 概念:就是服务器和客户端进行数据交互的一种形式。

常用请求头信息
  • User-Agent:请求载体的身份标识
  • Connection:请求完毕后,是断开连接还是保持链接

常用响应头信息
  • Contect-Type:服务器响应回客户端的数据类型

https协议
  • 安全的超文本传输协议

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

  • 非对称密钥加密


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

    • 但是非对称秘钥加密技术也存在如下缺点:


      • 第一个是:如何保证接收端向发送端发出公开秘钥的时候,发送端确保收到的是预先要发送的,而不会被挟持。只要是发送密钥,就有可能有被挟持的风险。
      • 第二个是:非对称加密的方式效率比较低,它处理起来更为复杂,通信过程中使用就有一定的效率问题而影响通信速度
  • 证书秘钥加密:在上面我们讲了非对称加密的缺点,其中第一个就是公钥很可能存在被挟持的情况,无法保证客户端收到的公开密钥就是服务器发行的公开密钥。此时就引出了公开密钥证书机制。数字证书认证机构是客户端与服务器都可信赖的第三方机构。证书的具体传播过程如下:


    • 服务器的开发者携带公开密钥,向数字证书认证机构提出公开密钥的申请,数字证书认证机构在认清申请者的身份,审核通过以后,会对开发者申请的公开密钥做数字签名,然后分配这个已签名的公开密钥,并将密钥放在证书里面,绑定在一起
    • 服务器将这份数字证书发送给客户端,因为客户端也认可证书机构,客户端可以通过数字证书中的数字签名来验证公钥的真伪,来确保服务器传过来的公开密钥是真实的。一般情况下,证书的数字签名是很难被伪造的,这取决于认证机构的公信力。一旦确认信息无误之后,客户端就会通过公钥对报文进行加密发送,服务器接收到以后用自己的私钥进行解密。

在这里插入图片描述



推荐阅读
author-avatar
nnbji
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有