浅谈数据抓取之 HTTP 基本原理

in 编程
关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9

什么是 HTTP

HTTP(Hyper Text Transfer Protocol 超文本传输协议) 是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准,用于从 www 服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTP 由万维网协会和 Internet 工作小组 IETF 共同合作制定的规范。

HTTP 和 HTTPS

说起 HTTP,就不得不说 HTTPS,HTTPS 比 HTTP 多了个 S,这个 S 就为 SSL,它是一种网络加密协议,会对网页传输的数据进行加密,我们平常打开的网页,比如我的博客,在 URL 的开头,显示 https,这个就属于协议类型,当然,协议类型不止这一种,比如还有其他,如 ftp、sftp、smb 开头的 URL,在爬虫中,我们抓取的页面通常就是 http 或 https。

HTTP 和 HTTPS

HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的 HTTP 通道,简单讲是 HTTP 的安全版,即 HTTP 下加入 SSL 层,简称为 HTTPS。HTTPS 的安全基础是 SSL,因此通过它传输的内容都是经过 SSL 加密的,它的主要作用可以分为两种:

建立一个信息安全通道来保证数据传输的安全。

确认网站的真实性。

不仅电脑端上的网站朝 HTTPS 发展,现在越来越多的 APP 也朝着 HTTPS 方向发展,在未来,互联网上到处可见 HTTPS。

HTTP 请求

请求是由客户端向服务端发出,其中可分为四部分:请求方法、请求的网址、请求头、请求体。

请求方法

常见的请求方法有 GET 和 POST。我们平常在浏览器输入一个网址,按上驾车,这样便发起了一个 GET 请求,请求的参数会包含在 URL 里。POST 请求大多是在表单提交时发起,但是你填入的数据不会出现在 URL 里,它会表单的形式传输,这也是它们两者之间的差别。

请求的网址

请求的网址,即统一资源定位符 URL,它可以唯一确定我们想请求的资源。

请求头

请求头是用来说明服务器要使用的附加信息,比较重要的信息有 Cookies、Refer、User-Agent 等。

Accept:用来指定客户端可接受哪些类型的信息。

Accept-Language:指定客户端可接受的语言类型。

Accept-Encoding:指定客户端可接受的内容编码。

HOST:指定请求资源主机 IP 和端口号。

Cookie:它的主要功能是维持当前访问会话。

Refer:用来标识这个请求是从哪个页面发过来的,服务器拿到这一信息并做相应的处理,如做来源统计等。

User-Agent:使服务器识别客户使用的操作系统及版本、浏览器及版本信息,爬虫用此参数来伪装浏览器。

Content-Type:用来表示具体请求中的媒体类型信息。

在做爬虫时,大部分情况下还是需要设置请求头。

请求体

请求体中的内容一般是对于 POST 请求来说的,而 GET 请求中,请求体为空。下面以我登录博客后台请求的头部信息,在登录前,输入帐号和密码信息,提交时就会以表单形式提交给服务器,这里需要注意 Request Headers 中指定 Content-Type 为上面箭头把指定的值,它才会以表单数据的形式提交。下在说下其它值的含义:

application/x-www-form-urlencoded:表单数据

multipart/form-data:表单文件上传

application/json:序列化 JSON 数据

text/xml:XML 数据

在爬虫中,如需构造 POST 请求,需要使用正确的 Content-Type,并了解各种请求库的各个参数设置时使用的是哪种 Content-Type,不然可能会导致 POST 提交后无法正常响应。

HTTP 响应

响应是由服务端返回给客户端,其中可分为三部分:响应状态码、响应头和响应体。

响应状态码

响应状态码表示服务器的响应状态,如 200 表示服务器响应正常,404 代表页面未找到,500 代表服务器内部发生错误。在爬虫中,可以根据状态码来判断服务器响应状态,如状态码 200,则证明成功返回数据。如需获取其它状态码,可在百度搜索。

响应头

响应头包含了服务器对请求的应答信息,如 Content-Type、Server、Set-Cookie 等。下面简要说明常用头信息:

Date:说明响应产生的时间。

Last-Modified:指定资源的最后修改时间。

Content-Ecoding:指定响应内容的编码。

Server:包含服务器的信息,比如名称、版本号等。

Content-Type:指定返回的数据类型是什么。

Set-Cookie:设置 Cookies。告诉浏览器需要将此内容放在 Cookies 中,下次请求携带 Cookies 请求

Expires:指定响应的过期时间

响应体

响应正文数据都在响应体中,比如请求网页时,它的响应体就是网页的 HTML 代码;请求一张图片时,它的响应体就是图片的二进制数据。在做爬虫过程中,我们要解析的内容就是响应体。

复制连接登录提取代理:https://v.duoip.cn/customer/signup/?sale=xujinyang1991

以上面代理示例规则示例,通过本文的讲解,相信能够让更多的小白知道爬虫使用HTTP代理的基本知识,重要的应该放在实战过程。

关注公众号【好便宜】( ID:haopianyi222 ),领红包啦~
阿里云,国内最大的云服务商,注册就送数千元优惠券:https://t.cn/AiQe5A0g
腾讯云,良心云,价格优惠: https://t.cn/AieHwwKl
搬瓦工,CN2 GIA 优质线路,搭梯子、海外建站推荐: https://t.cn/AieHwfX9
扫一扫关注公众号添加购物返利助手,领红包
Comments are closed.

推荐使用阿里云服务器

超多优惠券

服务器最低一折,一年不到100!

朕已阅去看看