python爬虫入门 之基础概念

第一章.软件介绍

1.1 Anaconda的下载

  • 下载页面 : https://www.anaconda.com/download

  • 直接下载(Windows) : Anaconda3-5.0.0-Windows-x86_64.exe | Anaconda3-5.0.0-Windows-x86.exe

  • 直接下载(macOS) : Anaconda3-5.0.0-MacOSX-x86_64.pkg | Anaconda3-5.0.0-MacOSX-x86_64.sh

  • 直接下载(Linux) : Anaconda3-5.0.0-Linux-x86_64.sh | Anaconda3-5.0.0-Linux-ppc64le.sh | Anaconda3-5.0.0-Linux-x86.sh

  • 快速下载地址(速度较快) : 清华开源软件镜像站

1.2 Anaconda3的安装

推荐链接地址 :https://www.cnblogs.com/honkly/p/7674527.html

1.3 Anaconda简单介绍

#Anaconda是一个集成环境:
   基于数据分析和机器学习的开发环境
#jupyter:超级终端
   就是Anaconda集成环境中提供的一种基于浏览器的可视化开发工具
   
#cell有两种常用模式
code   :编写python程序
   markdown:用于记录笔记
   
ProgramData\Anaconda3
#指令:
jupyter notebook  --> #jupyter从哪里启动,根目录就是哪儿
#进入jupyter:
shift + 鼠标右键 --> 在此处打开文档 --> 输入jupyter notebook
   
# 一个 ipynb 文件对应着计算机中的 一个缓存

1.4 一些快捷键

#插入cell :a,b
#删除cell : x
#切换cell的模式 :y,m
#执行: shift + enter
#tab
#打开帮助文档 :shift + tab

第二章.爬虫相关概述

2.1 http和https

2.1.1http

  • 概念:client 和 server进行数据交互的某种形式

  • 常用请求头信息

    # User_Agent                     请求载体的身份标识    
    # Connection:close/keep-alive   连接
    # content-type                   响应类型(响应头信息)

2.1.2https

  • 安全的http协议

2.1.3证书

1.对称密钥加密(SSL加密)

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

2.非对称秘钥加密

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

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

  • 第一个是:如何保证接收端向发送端发出公开秘钥的时候,发送端确保收到的是预先要发送的,而不会被挟持。只要是发送密钥,就有可能有被挟持的风险。

  • 第二个是:非对称加密的方式效率比较低,它处理起来更为复杂,通信过程中使用就有一定的效率问题而影响通信速度

3.证书秘钥加密方式

证书是被应用在https的加密操作中的,该证书是由证书认证机构颁布的,证书中包含公钥(加密方式)

证书的具体传播过程如下:

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

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

2.2爬虫相关概述

2.2.1爬虫概念

  • 通过编写程序模拟浏览器上网,然后让其去互联网上爬取/抓取数据的过程

    • 模拟 : 浏览器就是一款纯天然的原始爬虫工具

    • 爬取/抓取 :

2.2.2爬虫分类

  • 通用爬虫

    • 爬取一整张页面的数据,抓取系统(爬虫程序)的一套程序

  • 聚焦爬虫

    • 爬取页面中局部数据,建立在通用爬虫基础之上

  • 增量式爬虫

    • 用来监测网站数据更新的情况,以便爬取到网站最新更新的数据

2.2.3风险分析

  • 合理的使用

  • 风险的体现:

    • 爬虫干扰了被访问网站的正常运营

    • 爬虫抓取了受到法律保护的特定类型的数据或信息

  • 避免风险

    • 严格遵守网站设置的robots协议

    • 在规避反爬虫措施的同时,需要优化自己的代码,避免干扰被访问网站的正常运行

    • 在使用,传播抓取到的信息时,应审查所抓取到的内容,如发现属于用户的个人隐私,信息,或其他人的商业秘密的,应及时停止并删除.

  • 反爬机制

  • 反反爬策略

2.2.4 反爬机制一 :robots.txt协议

  • 文本协议,在文本中指定了可爬和不可怕的数据说明

  • 如果自己的门户网站中的指定页面中的数据不想让爬虫程序爬取到的话,那么则可以通过编写一个robots.txt的协议文件来约束爬虫程序的数据爬取。robots协议的编写格式可以观察淘宝网的robots(访问www.taobao.com/robots.txt即可)。但是需要注意的是,该协议只是相当于口头的协议,并没有使用相关技术进行强制管制,所以该协议是防君子不防小人。但是我们在学习爬虫阶段编写的爬虫程序可以先忽略robots协议

posted @ 2019-09-10 15:54  Primrose  阅读(197)  评论(0编辑  收藏  举报