乐趣区

关于python:03python爬虫基本原理

爬虫是 模仿用户在浏览器或者某个利用上的操作,把操作的过程、实现自动化的程序

当咱们在浏览器中输出一个 url 后回车,后盾会产生什么?比如说你输出 http://www.sina.com.cn/

简略来说这段过程产生了以下四个步骤

  • 查找域名对应的 IP 地址。
  • 向 IP 对应的服务器发送申请。
  • 服务器响应申请,发回网页内容。
  • 浏览器解析网页内容。

网络爬虫实质

实质就是浏览器 http 申请

浏览器和网络爬虫是两种不同的网络客户端,都以雷同的形式来获取网页:

网络爬虫要做的,简略来说,就是实现浏览器的性能。通过指定 url,间接返回给用户所须要的数据,而不须要一步步人工去操纵浏览器获取。

浏览器是如何发送和接管这个数据呢?

HTTP 简介

HTTP 协定(HyperText Transfer Protocol,超文本传输协定)目标是为了提供一种公布和接管 HTML(HyperText Markup Language) 页面的办法。

HTTP 协定所在的协定层(理解)

HTTP 是基于 TCP 协定之上的。在 TCP/IP 协定参考模型的各层对应的协定如下图, 其中 HTTP 是应用层的协定。 默认 HTTP 的端口号为 80,HTTPS 的端口号为 443。

HTTP 工作过程

一次 HTTP 操作称为一个事务,其工作整个过程如下:

1 )、地址解析,

如用客户端浏览器申请这个页面:http://localhost.com:8080/index.htm

从中合成出协定名、主机名、端口、对象门路等局部,对于咱们的这个地址,解析失去的后果如下:协定名:http 主机名:localhost.com 端口:8080 对象门路:/index.htm

在这一步,须要域名零碎 DNS 解析域名 localhost.com, 得主机的 IP 地址。

2)、封装 HTTP 申请数据包

把以上局部联合本机本人的信息,封装成一个 HTTP 申请数据包

3)封装成 TCP 包,建设 TCP 连贯(TCP 的三次握手)

在 HTTP 工作开始之前,客户机(Web 浏览器)首先要通过网络与服务器建设连贯,该连贯是通过 TCP 来实现的,该协定与 IP 协定独特构建 Internet,即驰名的 TCP/IP 协定族,因而 Internet 又被称作是 TCP/IP 网络。

HTTP 是比 TCP 更高层次的应用层协定,依据规定,只有低层协定建设之后能力,能力进行更层协定的连贯,因而,首先要建设 TCP 连贯,个别 TCP 连贯的端口号是 80。这里是 8080 端口

4)客户机发送申请命令

建设连贯后,客户机发送一个申请给服务器,申请形式的格局为:对立资源标识符(URL)、协定版本号,后边是 MIME 信息包含申请修饰符、客户机信息和可内容。

5)服务器响应

服务器接到申请后,给予相应的响应信息,其格局为一个状态行,包含信息的协定版本号、一个胜利或谬误的代码,后边是 MIME 信息包含服务器信息、实体信息和可能的内容。

  1. 实体音讯是服务器向浏览器发送头信息后,它会发送一个空白行来示意头信息的发送到此为完结,接着,它就以 Content-Type 应答头信息所形容的格局发送用户所申请的理论数据

6)服务器敞开 TCP 连贯

个别状况下,一旦 Web 服务器向浏览器发送了申请数据,它就要敞开 TCP 连贯,而后如果浏览器或者服务器在其头信息退出了这行代码

Connection:keep-alive

TCP 连贯在发送后将依然放弃关上状态,于是,浏览器能够持续通过雷同的连贯发送申请。放弃连贯节俭了为每个申请建设新连贯所需的工夫,还节约了网络带宽。

HTTPS

HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以平安为指标的 HTTP 通道,简略讲是 HTTP 的平安版。即 HTTP 下退出 SSL 层,HTTPS 的平安根底是 SSL。其所用的端口号是 443。

SSL:安全套接层,是 netscape 公司设计的次要用于 web 的平安传输协定。这种协定在 WEB 上取得了宽泛的利用。通过证书认证来确保客户端和网站服务器之间的通信数据是加密平安的。

有两种根本的加解密算法类型:

1)对称加密 (symmetrcic encryption):密钥只有一个,加密解密为同一个明码,且加解密速度快,典型的对称加密算法有 DES、AES,RC5,3DES 等;

对称加密次要问题是共享秘钥,除你的计算机(客户端)晓得另外一台计算机(服务器)的私钥秘钥,否则无奈对通信流进行加密解密。解决这个问题的计划非对称秘钥。

2)非对称加密 :应用两个秘钥:公共秘钥和公有秘钥。公有秘钥由一方明码保留(个别是服务器保留),另一方任何人都能够取得公共秘钥。

这种密钥成对呈现(且依据公钥无奈推知私钥,依据私钥也无奈推知公钥),加密解密应用不同密钥(公钥加密须要私钥解密,私钥加密须要公钥解密),绝对对称加密速度较慢,典型的非对称加密算法有 RSA、DSA 等。

https 通信的长处:

  • 客户端产生的密钥只有客户端和服务器端能失去;
  • 加密的数据只有客户端和服务器端能力失去明文;
  • 客户端到服务端的通信是平安的。

IT 入门 感激关注 |  练习地址:www.520mg.com/it

退出移动版