最详细爬虫零基础教程02——http协议和请求头的介绍

文章目录

  • 复习
  • 一、http和https协议
  • 二、网络请求的过程
    • 1.浏览器发送http请求的过程
    • 2.DNS服务器
  • 三、Headers参数介绍
  • 总结


复习

在本节开始讲述的时候,我们先来复习一下爬虫的基本步骤:
爬虫的基本步骤


一、http和https协议

HTTP协议(Hypertext Transfer Protocol)是一种用于传输超文本的应用层协议。

工作原理:客户端发送请求给服务器,服务器接收并处理请求,并返回相应的响应给客户端。请求和响应都包含一个首部和一个可选的消息体。首部包含了请求或响应的元数据,消息体包含了实际的数据。

HTTP协议使用TCP/IP作为传输协议,通常使用80端口。它支持多种请求方法,包括GET、POST、PUT、DELETE等,每个方法都有不同的语义和用途。

HTTP协议也支持状态码来表示请求的处理结果,常见的状态码包括200表示成功,404表示未找到资源,500表示服务器内部错误等。

除了传输超文本外,HTTP协议还可以传输其他类型的内容,如图片、音频、视频等。在传输时,可以使用压缩、缓存、加密等技术来提高传输效率和安全性。

备注:上面提到的一些基本概念会在后面陆续讲解到,不懂的话可以先放着,我们后面通过实例来进行了解。

http和https的区别

HTTP

  • 超文本传输协议
  • 默认端口号:80

HTTPS

  • HTTP + SSL(安全套接字层),即带有安全套接字层的超本文传输协议
  • 默认端口号:443

HTTPS比HTTP更安全,但是性能更低

二、网络请求的过程

1.浏览器发送http请求的过程

请求过程

  • 浏览器先向地址栏中的url发起请求,并获取相应

  • 在返回的响应内容(html)中,会带有css、js、图片等url地址,以及ajax代码,浏览器按照响应内容中的顺序依次发送其他的请求,并获取相应的响应

  • 浏览器每获取一个响应就对展示出的结果进行添加(加载),js,css等内容会修改页面的内容,js也可以重新发送请求,获取响应

  • 从获取第一个响应并在浏览器中展示,直到最终获取全部响应,并在展示的结果中添加内容或修改————这个过程叫做浏览器的渲染

http请求的形式
浏览器请求形式

注意:在爬虫中,爬虫只会请求url地址,对应的拿到url地址对应的响应(该响应的内容可以是html,css,js,图片等),浏览器渲染出来的页面和爬虫请求的页面很多时候并不一样,所以在爬虫中,需要以url地址对应的响应为准来进行数据的提取

2.DNS服务器

定义:DNS服务器(Domain Name System Server)是一种用于解析域名和IP地址之间映射关系的服务器。它将人类可读的域名转换为计算机可理解的IP地址,以便在互联网上进行通信。

工作原理

  • 当用户在浏览器中输入一个域名时,浏览器需要通过DNS服务器来获取对应的IP地址,然后才能与该网站建立连接。DNS服务器负责将域名解析为IP地址,并将解析结果返回给用户的设备。

  • DNS服务器通过一种分布式的、层级化的系统来工作。它们组成了一个大的网络,每个DNS服务器都存储着一部分域名和对应的IP地址。当一个DNS服务器无法解析某个域名时,它会向上一级的DNS服务器发送请求,直到找到能够解析的DNS服务器为止。

作用

1.DNS根据域名解析出对应的IP地址
2.返回IP地址给本机电脑
3.使用IP地址去百度首页的服务器(仓库)
4.返回给客户端相应的数

除了域名解析外,DNS服务器还可以提供其他功能,如记录域名的邮件服务器、将一个域名重定向到另一个域名等。

总而言之,DNS服务器是用于解析域名和IP地址之间映射关系的服务器,它将域名转换为IP地址以便进行互联网通信。它通过分布式、层级化的系统工作,并可以缓存解析结果以提高效率。

三、Headers参数介绍

定义:Headers(头部)是HTTP协议中的一部分,用于在HTTP请求和响应中传递元数据信息。Headers以键值对的形式出现,每个键值对由冒号分隔,键值对之间用换行符分隔。在HTTP请求中,Headers包含了客户端(浏览器或其他客户端应用)向服务器发送的信息,如请求的方法、URI、支持的压缩算法、用户代理信息等。

那么我们如何找到Headers,查看客户端和服务器的交流过程呢?(重点)

1.打开你想要搜索的网址页面(这里我以百度网页进行展示,输入www.baidu.com进入百度首页。
在这里插入图片描述
2.点击F12或者鼠标右键点击检查,调出开发者工具
![如何寻找请求头](https://img-blog.csdnimg.cn/direct/81c6fecdc10c4b4c91845b308641aee4.png在这里插入图片描述
3.上述操作完成之后你就会得到以下页面
F12
4.之后我们随便点开左侧的一个数据包,我们就可以寻找到Headers
Headers
常用参数介绍:

1. General:表示整体信息的描述

  • Request url:该数据包的域名
  • Request method:请求的方法 (GET POST)
  • status Code:200 OK(状态码 301.302 代表跳转 404 代表没有访问成功 5开头的表示对象服务器出现问题 200成功)
  • Remote Address:183.2.172.42:443(表示IP地址)

2. Response Headers:(响应头,响应信息):服务器需要遵循这种规则协议,浏览器才能解析出来,并且展示

  • Content-Type:text/html; charset=utf-8(表示响应的内容是text、HTML格式,编码格式为utf-8)
  • Set-Cookie:用于在响应中设置cookie。服务器可以通过此参数向浏览器发送cookie,以便在后续请求中进行身份验证或跟踪用户状态。
    3. Request Headers:请求头(重点)
  • Accept:指定客户端能够接受的响应内容类型。可以使用MIME类型或通配符。例如,Accept: application/json表示客户端希望接收JSON格式的响应。
  • Accept-Encoding:gzip, deflate, br,浏览器可接受的编码格式
  • Accept-Language:zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6(浏览器可接受的编码语言)
  • Cookie(重点):记录会话信息,记录和服务器的交流信息 包括用户名,身份信息(下次访问就不用填写账号信息),用于在服务器上跟踪用户的会话状态。 cookie是反爬的重点。
  • Host:www.baidu.com(指定服务器的主机名和端口号)
  • User-Agent:指定发送请求的用户代理信息。通常包含浏览器名称和版本号。

总结

前面的概念知识有点繁琐,但是这是爬虫必不可少的基础,坚持就是胜利,相信自己。

每个梦想,都是在现实中坚持不懈才实现的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/542828.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【C++ RB树】

文章目录 红黑树红黑树的概念红黑树的性质红黑树节点的定义红黑树的插入代码实现总结 红黑树 AVL树是一颗绝对平衡的二叉搜索树,要求每个节点的左右高度差的绝对值不超过1,这样保证查询时的高效时间复杂度O( l o g 2 N ) log_2 N) log2​N),…

【C++ 设计模式】策略模式与简单工厂模式的结合

文章目录 前言一、为什么需要策略模式简单工厂模式二、策略模式简单工厂模式实现原理三、UML图四、示例代码总结 前言 在软件设计中,常常会遇到需要根据不同情况选择不同算法或行为的情况。策略模式和简单工厂模式是两种常见的设计模式,它们分别解决了对…

机器学习-04-分类算法-02贝叶斯算法

总结 本系列是机器学习课程的系列课程,主要介绍机器学习中分类算法,本篇为分类算法与贝叶斯算法部分。 本门课程的目标 完成一个特定行业的算法应用全过程: 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程…

如何使用Python进行数据可视化:Matplotlib和Seaborn指南【第123篇—Matplotlib和Seaborn指南】

如何使用Python进行数据可视化:Matplotlib和Seaborn指南 数据可视化是数据科学和分析中不可或缺的一部分,而Python中的Matplotlib和Seaborn库为用户提供了强大的工具来创建各种可视化图表。本文将介绍如何使用这两个库进行数据可视化,并提供…

数据结构与算法第八套试卷

1.建立一个长度为n的有序单链表的时间复杂度 0(n^2) 2.哈希算法 key%p:p最好为质数 如果两个关键字的值不等但哈希函数值相等,则称这两个关键字为同义词(正确); 3.二分查找 注意: 二分查找是向下查询…

pytest生成allure的报告

首先要下载安装配置allure allure serve ./outputs/allure_report 可以生成html的文件自动在默认浏览器中打开

栈的应用——括号匹配

用栈实现 1、初始化一个栈,用来存左括号 2、遍历扫描括号字符串 如果遇到左括号,无脑入栈如果遇到右括号,此时栈空返回false,不空的话进行括号匹配。匹配不成功返回false,匹配成功将栈顶的那个左括号出栈。 遍历完之后…

Android Kotlin知识汇总(三)Kotlin 协程

Kotlin的重要优势及特点之——结构化并发 Kotlin 协程让异步代码像阻塞代码一样易于使用。协程可大幅简化后台任务管理,例如网络调用、本地数据访问等任务的管理。本主题介绍如何使用 Kotlin 协程解决以下问题,从而让您能够编写出更清晰、更简洁的应用代…

Selenium控制已运行的Edge和Chrome浏览器——在线控制 | 人机交互(详细启动步骤和bug记录)

文章目录 前期准备1. 浏览器开启远程控制指令(1)Edge(2)Chrome 2. 执行python代码(1)先启动浏览器后执行代码(2)通过代码启动浏览器(3)Bug问题记录1&#xff…

52 硬中断的实现

前言 呵呵 中断机制 也是内核中很常见的机制了 中断机制是现代计算机系统中的基本机制之一,它在系统中起着通信网络的作用,以协调系统对各种外部事件的响应和处理,中断是实现多道程序设计的必要条件,中断是CPU 对系统发生的某个…

几何造型库 - osgModeling

基于osg的几何造型库(osgModeling-0.1.1)的编译成果和示例: basic: boolean: bsp-tree:

Educational Codeforces Round 163 (Rated for Div. 2)

Educational Codeforces Round 163 (Rated for Div. 2) Educational Codeforces Round 163 (Rated for Div. 2) A. Special Characters 题意: 给出特殊字符的定义,在一组字符串中当前字符的相邻字符有且仅有一个与自身相同的字符,找出具有…