IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 爬 虫 基 础 -> 正文阅读

[网络协议]爬 虫 基 础

目录

http基本原理:

超文本:英文名称hypertext,简单来说HTML代码就是超文本,而我们看到的网页就是超文本解析而成。

HTTP请求过程

响应

由服务器返回给客户端,分为三部分:响应状态码,响应头,响应体。

响应状态码:表示服务器的响应状态,200表示服务器响应正常,404代表页面未找到。

响应头:包含服务器对请求的应答信息。?

响应体:响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码,如下图。

网页基础

网页可以分为三大部分:HTML、CSS、JavaScript

爬虫概述:简单来说,爬虫就是获取网页并提取和保存信息的自动化程序。

会话和cookies

代理


http基本原理:

Uri:全称为“Uniform Resource Identifier”,即统一资源标识符。

Url:全称为“Universal Resource Locator”,即统一资源定位符。

通俗的来讲url就是uri,而uri包括了url和urn,目前我们常见的都是url。

例如:

“https://www.baidu.com/?tn=02003390_79_hao_pg”

这就是一个url。

一个完整的url包括三部分:

第一部分是协议(或称为服务方式);

第二部分是存有该资源的主机IP地址(有时也包括端口号),简单来说就是网址;

第三部分是主机资源的具体地址,如目录和文件名等,简单来说就是文件地址。

第一部分和第二部分之间用“://”符号隔开,第二部分和第三部分用“/”符号隔开。第一部分和第二部分是不可缺少的,第三部分有时可以省略


下面详细地介绍url的3个部分:

第一部分:协议

淘宝的url:https://www.taobao.com/

百度的url:百度一下,你就知道百度一下,你就知道https://www.baidu.com/

可以看到无论是百度还是淘宝他们的url第一部分都是https,意味它们都遵循https协议,目前常见的协议类型有http、https。

HTTP的全称是Hyper Text Transfer Protocol,中文名叫超文本传输协议。

HTTP协议主要作用:
1、客户与服务器建立连接;
2、客户向服务器提出请求;
3、服务器接受请求,并根据请求返回相应的文件作为应答;
4、客户与服务器关闭连接。

HTTP协议是用于从网络传输超文本数据到本地浏览器的传送协议,能保证高效而准确的传送超文本文档,简单来说就是可以辅助浏览器与服务器之间的传输数据,当你用浏览器打开一个网页,首先是客户端向服务器发送请求,而服务器返回“响应”(简单来说就是你所看到的网页内容),而协议就是在这个过程中起辅助作用。

第二部分:网址

网址部分大家也经常用到,比如:www.baidu.com, www.taobao.com。这都是网址,当我们在地址栏输入一个网址的时候,协议部分是不用输入的,浏览器会自动补上默认的HTTP协议。

对于www.taobao.com这个网址,如果我们去掉前缀www,即taobao.com,这个部分就叫域名,而域名最右边的com就是顶级域名,常见的比如:.com 表示商业机构,.org表示非盈利性组织,.gov表示政府机构,.edu表示教育及科研机构。用来表示国家顶级域名的比如:.cn表示中国,.us表示美国,.jp表示日本。虽然一个标准的URL地址看起来很复杂,但其实我们在输入URL的时候是只要输入网址或域名就可以了。

至于第三部分就不再赘述。

注意:百度一下,你就知道https://www.baidu.com/?tn=02003390_79_hao_pg

该URL最后一部分?tn=02003390_79_hao_pg

并非资源的具体地址,而是请求的参数。在该URL中的第三部分被省略了。


超文本:英文名称hypertext,简单来说HTML代码就是超文本,而我们看到的网页就是超文本解析而成。

例如:

这些都叫做超文本。


HTTP请求过程

我们在浏览器中输入一个URL,回车之后就能看到网页内容,这个过程实际上是浏览器向该网站所在的服务器发送了一个请求,服务器接受请求后进行处理和解析,然后返回对应的响应,接着传回给浏览器,响应里包含页面源码等内容,浏览器再经过解析,我们便能看到内容。

请求:请求由客户端向服务器发出,分为四部分:请求方法,请求网址,请求头,请求体。

请求方法:

常见的分为两种:GET和POST。

GET:

我们在浏览器中直接输入URL并回车,便发起了一个GET请求,请求参数便包含在内。

例如:百度一下,你就知道https://www.baidu.com/?tn=02003390_79_hao_pg

最后一个‘/’后的内容便是参数。

POST:

大多在表单提交时发起,比如,对于一个需要登录账号密码的网站,即登录表单,你需要输入账号和密码,这时就会发送一个POST请求,而POST与GET区别在于POST请求参数不会出现在URL中,这也就是为什么需要登录的请求都采用POST方式,如果用GET方式,那么用户的账号密码都会暴露在URL中。

请求网址:

百度一下,你就知道https://www.baidu.com/?tn=02003390_79_hao_pg

在这个URL中请求网址就是www.baidu.com

请求头:

用来说明服务器要使用的附加信息,就是服务器所需要的东西。

比较重要的有Cookie,Referer,User-Agent。

Referer:用来标识这个请求是从哪一个页面发过来的,服务器可以拿这一信息用于防盗链处理(一种反爬方式)。

User-Agent:可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息,做爬虫时加上此信息,可以将爬虫伪装成浏览器,以防止反爬。

请求头是请求的重要组成部分,在写爬虫时,通常要设定请求头。

请求体:

请求体一般承载的内容是POST请求中的表单数据,而对于GET请求,请求体则为空。


响应

由服务器返回给客户端,分为三部分:响应状态码,响应头,响应体。

响应状态码:表示服务器的响应状态,200表示服务器响应正常,404代表页面未找到。

响应头:包含服务器对请求的应答信息。?

响应体:响应的正文数据都在响应体中,比如请求网页时,它的响应体就是网页的HTML代码,如下图。

请求一张图片时,它的响应体就是图片的二进制数据,我们做爬虫请求网页时,要解析的内容就是响应体。?


网页基础

网页可以分为三大部分:HTML、CSS、JavaScript

HTML就是一种用来描述网页的语言,全称叫做Hyper Text Markup Language,即超文本标记语言。

CSS全称叫做Cascading Style Sheets,即层叠样式表,用来让页面变得更美观。

JavaScript是一种脚本语言,我们在网页里看到的动画、交互效果,如轮播图、进度条就是JavaScript在起作用。


爬虫概述:简单来说,爬虫就是获取网页并提取和保存信息的自动化程序。

会话和cookies

首先先介绍HTTP的一个特点叫做无状态,无状态是指服务器不知道客户端是什么状态,每个请求和响应都是独立的,缺少状态记录。

举个简单的例子,比如你登录一个购物平台,你首先输入了你的账号密码,然后由浏览器向服务器发送请求,服务器核对你的账户密码,返回响应,之后你点开一个商品,相当于又发起了一个url请求,但由于HTTP是无状态的,也就是说服务器并不知道是你再次发送的请求,因为请求之间是相互独立的,这时服务器需要再次核对你的身份信息,也就是你的账号密码,因此你需要再次输入账号密码才能打开商品网页。因此便有了会话和cookie的诞生。

会话和cookie用于保持HTTP连接状态,会话在服务端,cookie在客户端。

当你第一次请求服务器时,服务器会返回一个带有cookie的响应,而下次你再访问服务器时,请求中都会包含这个cookie。

比如说,你登陆一个网站,输入你的账号密码,服务器返回一个带有cookie的响应,这个cookie相当于你登录的凭证,而同时在服务器一端也会有与cookie相对应的一个会话,会话储存用户的状态信息,当你在该网站中点开其他网页时,请求中包含了服务器发送给你的cookie,服务器通过cookie找到对应的会话,从而知道你的状态信息,而返回给你想要的响应(也就是网页内容)。

JavaScript渲染页面:有时候我们用requests抓取网页时,得到的源代码和浏览器中看到的不一样,可能是因为网页经过了JS渲染,而我们得到的原始HTML并不能得到真正的网页。所谓JS渲染就是在HTML代码中引入了JS文件,浏览器在识别到HTML中的JS文件会向服务器发送请求,得到了文件后就会执行其中的JS代码,最后就能得到完整的页面。而我们用爬虫爬取的HTML代码并不能加载出JS文件,所以我们就看不到完整的页面内容。


代理

代理实际上就是代理服务器,英文叫做proxy server,就是其他计算机的IP地址,再简单一点就是一个中转站。正常请求一个网站时,我们发送请求给服务器,服务器返回响应给我们。当使用代理时,就是我们发送请求给代理服务器,代理服务器发送给Web服务器,之后返回响应给代理,代理再给我们。当我们用爬虫爬取网页时,可能会因为访问次数过多,被服务器认定为恶意访问,从而被封IP,也就是进了服务器的黑名单,当你想要再次访问时就会失败,而代理的作用就是用来防止服务器封你主机的IP,从而达到隐藏的效果。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-12-15 18:40:09  更:2021-12-15 18:40:41 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 11:51:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码