2.每天进步一点点-Python爬虫需要了解一下基础的web相关内容

news2024/11/24 12:27:22

14天学习训练营导师课程:
杨鑫《Python 自学编程基础》
杨鑫《 Python 网络爬虫基础》
杨鑫《 Scrapy 爬虫框架实战和项目管理》

文章目录

  • 1.网络请求过程
    • 1.1通过 URL 查找服务器 IP
    • 1.2三次握手建立 TCP 连接
    • 1.3发送 HTTP 请求
    • 1.4服务器响应请求
    • 1.5浏览器解析 HTML
    • 1.6页面渲染后呈现给用户
  • 2.浏览器开发者工具
    • 2.1如何打开开发者工具
    • 2.2开发者工具面板设置成中文
  • 3.URI 和 URL

1.网络请求过程

打开浏览器,输入一个网址,然后回车,等待网页加载结束,然后浏览网页。这个操作,你知道在这个操作过程中都发生了什么事情么

例如我们在浏览器地址栏中输入:https://www.baiu.com 并回车

在这里插入图片描述

1.1通过 URL 查找服务器 IP

浏览器先要做的是找出与域名对应的服务器,即把域名解析成对应服务器的 IP 地址。

对于 www.baidu.com,浏览器并不认识这个域名,

  • 前面的 www 是服务器名,

  • baidu 可以理 解为公司名或私人名,

  • 最后的 com 则是域名根服务器。

浏览器先访问本地 Host 文件,检查文件中是否有与域名匹配的IP地址,如果有则直 接访问IP对应的服务器;否则,向上层的 DNS 服务器询问;如果还没有,则继续向上层 DNS 服务器询问,直到DNS根服务器

1.2三次握手建立 TCP 连接

回顾一下大学网络课程的三次握手知识内容

获得服务器 IP 后,接下来是和服务器建立连接,这就是常说的 TCP 三次握手 如下图

在这里插入图片描述

首先,客户端发送一个带 SYN 标志的数据包给服务器。服务器收到后,回传一个带 SYN/ACK 标志的数据包表示信息确认。最后,客户端回传一个带 ACK 标志的数据包,表 示握手结束,连接建立成功。 可能读者对此不容易理解,打个比方,你可以把客户端当作一个快递员,而把服务器当作收件人。

快递员(客户端):兄弟,在家吗?有你的快递。 

收件人(服务器):嗯,在家,你在下午两点前送过来就行。 

快递员(客户端):行,我两点前给你送过去。

这就类似于三次握手建立 TCP 连接

1.3发送 HTTP 请求

客户端和服务器建立连接后就可以开始发送 HTTP 请求了。浏览器发送请求行、请求 头信息,还发送一个空行,代表请求头信息发送结束。如果是 Post 提交,还会提交请求体。

1.4服务器响应请求

Web 服务器解析用户请求并进行相关处理,最后把处理结果组装成响应报文,返回给 客户端

1.5浏览器解析 HTML

浏览器解析服务器返回的 HTML 代码,并请求 HTML 里用到的 CSS、JS、图片等资源。

1.6页面渲染后呈现给用户

渲染的顺序是从上到下,下载和渲染是同时进行的,页面加载完成显示在浏览器上。 以上就是用户在浏览器输入一个地址并回车后到浏览器经历的大致流程.

2.浏览器开发者工具

2.1如何打开开发者工具

打开浏览器按F12调出开发者工具 或者浏览器右上角三个小点—>更多工具->开发者工具

在这里插入图片描述

2.2开发者工具面板设置成中文

开发者工具面板是英文,看不习惯可以设置成中文的,点击小齿轮图标进入设置页面

在这里插入图片描述

2.3 如下内容,可以在标头下,看到请求方法GET请求、响应头、等等内容。

在这里插入图片描述

3.URI 和 URL

URI(Uniform Resource Identifier,统一资源标志符)标记一个网络资源,强调的是给 资源命名;URL 用地址标记一个网络资源,强调的是给资源定位。

下面说个简单的列子如:

你在某个技术沙龙上认识了一位技术高手,他自称 XXX 公司的技术总监,这 个头衔就是 URI,但是只有这个头衔的话,你没有那么容易找到他,你还需要知道他所在 公司的地址。深圳市南山区科技园 X 栋 X 楼/XXX 公司/技术总监/X 某,通过上面这串地址 你就可以找到这个人。这个完整的地址就是 URL。而通过这个 URL 也可以知道 X 某是 XXX 公司的技术总监,它既能当作标记使用,又能当作地址使用,所以 URL 是 URI 的子集。

URI 由下面三部分组成:

  • 访问资源的命名机制
  • 存放资源的主机名
  • 资源本身的名称,用路径标识,着重强调资源。

URL 由下面三部分组成:

  • 协议(或称服务方式)
  • 存有该资源的主机 IP 地址(有时也包含端口号)
  • 主机资源的具体地址(如目录、文件名等)

一般习惯性地把我们说的网址称为 URL。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

21年-自研-笔试题

目录背景题目1、Object的常用方法2、 和 equals 的区别是什么?equals3、以下代码的运行结果4、以下代码的运行结果5、String, StringBuilder,StringBuffer6、ArrayList和LinkedList7、一些常用的线程安全的集合类8、以下代码的运行结果9、完成下面的代码…

Java环境准备——JDK下载和安装、IDEA下载和安装

一、JDK下载及安装 1、必要性:JDK是整个Java开发的核心。 2、下载网址:Java Downloads | Oracle 3、选择下载JDK17的原因:JDK17 是Java的长期支持版本。 4、下载到本地后,双击进行安装,然后点击下一步,安…

AI物品分类识别管理系统uniapp源码带文档教程

技术架构 技术框架:SpringBoot2 Mysql5.7 Mybatis-Plus uniapp Swagger2 RuoYi-fast swagger-bootstrap-ui 运行环境:jdk8 IntelliJ IDEA maven 宝塔面板 百度智能云平台服务 本地api接口端搭建教程 后端需要准备相关的IDE和JDK8开发环境 , 前…

GIT技巧

目录 基础命令 commit 、branch merge rebase 高级特性 自由修改提交树 cherry-pick rebase 远程仓库命令 基础命令 commit 、branch Git Commit Git 仓库中的提交记录保存的是你的目录下所有文件的快照,就像是把整个目录复制,然后再粘贴一样…

Linux内核中ideapad-laptop.c文件全解析6

接前一篇文章《Linux内核中ideapad-laptop.c文件全解析5》,地址为: Linux内核中ideapad-laptop.c文件全解析5_蓝天居士的博客-CSDN博客 上一篇详细分析了ideapad_debugfs_init,本篇详细分析ideapad_input_init。 ideapad_input_init ideap…

Word控件Spire.Doc 【图像形状】教程(7): 如何使用 C# 在 Word 中替换图像

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

b站黑马JavaScript的Ajax案例代码——聊天机器人案例

目录 目标效果: 更换的新接口: 1.机器人智能回复接口:http://www.liulongbin.top:3006/api/robot 2.机器人语音接口:http://www.liulongbin.top:3006/api/synthesize 重点原理: 1.jQuery中trim方法 2.jquery中a…

Hive数据查询语言-DQL-含示例演练(Select查询数据、Join查询)

文章目录1. Select查询数据1.1 基础语法1.1.1 select_ecpr1.1.2 ALL、DISTINCT1.1.3 WHERE1.1.4 分区查询、分区裁剪1.1.5 GROUP BY1.1.6 HAVING1.1.7 LIMIT1.1.8 执行顺序1.2 高阶语法1.2.1 ORDER BY1.2.2 CLUSTER BY1.2.4 Union联合查询1.2.5 from子查询(Subqueri…

Allegro自动沿着目标任意形状走线操作指导

Allegro自动沿着目标任意形状走线操作指导 Allegro有个非常好用的功能,支持自动沿着目标任意形状走线,对于异形板框走线尤其方便,以下图为例,需要沿着这个外形走一段线 具体操作如下 点击add connect命令 点击空白处 鼠标右击选择contour命令 出现一个对话框,当前是…

03【Spring AOP、CGBLIB代理】

文章目录03【Spring AOP、CGBLIB代理】一、AOP前奏1.1 案例1.1.1 需求设计1.1.2 需求修改1.1.3 需求增加1.1.4 分析存在的问题1.2 动态代理1.2.1 定义接口:1.2.2 日志代理类1.2.3 缓存代理类:1.2.4 测试类二、AOP2.1 AOP 概述2.1.1 纵向编程2.1.2 纵横配…

【Java进阶篇】第六章 IO流

文章目录一、IO流的概述1、流2、流的分类3、Java IO流的四大块4、流的两大特性5、java.io包下的16个常用流二、文件专属流1、java.io.FileInputStream2、java.io.FileOutputStream3、java.io.FileReader4、java.io.FileWriter三、缓冲流与转换流1、java.io.BufferedReader2、ja…

【面试题】深度解析Java多线程中的 run() 与 start() 有什么区别?

【面试题】深度解析Java多线程中的 run() 与 start() 有什么区别? 大多数人的回答 start() run() 深入底层源码的解析 run() 与 start() 为什么我们不能直接调用 run() 方法? 如何证明 start() 会调用 run() 方法? JVM -> OS执行全…

Nodejs -- 数据库基本概念的介绍及在Express中操作数据库

文章目录1. 数据库的基本概念1.1 什么是数据库1.2 常见的数据库及分类1.3 传统型数据库的数据组织结构1.3.1 Excel的数据组织结构1.3.2 传统型数据库的数据组织结构1.3.3 实际开发中库、表、行、字段的关系2. 在Express中操作MySQL2.1 在项目中操作数据库的步骤2.2 安装与配置m…

Java编程案例:买飞机票

编程案例: 一、目的 复习前半段课程学习的Java编程知识,能够使用所学的知识解决问题,提升同学们的编程能力。 二、涉及到的知识点 变量、数组。运算符:基本运算符、关系运算符、逻辑运算符…程序流程控制:if、switc…

np.meshgrid()函数

文章目录(1)自己理解(2)官方解释(3)参数:3.1 x1, x2,…, xn:array_like3.2 sparse:bool, optional 默认false3.3 copy:bool, optional(1)自己理解 np.meshgrid(a, b,indexing "xy") 函数会返回 b.shape() 行 ,a.shape() 列的二维数组。 因此 i, j 都是 …

【序列召回推荐】(task6)多兴趣召回Comirec-SA

note Comirec-SA基于attention的多兴趣建模,论文中先通过attention提取单一兴趣,再推广到多兴趣建模。另外使用贪心算法优化带有准确度多样性的目标函数。DR把MIND的attention换成argmax(还有初始化方式不同、序列胶囊到兴趣胶囊用可学习权重…

2.线性代数基础

1.矩阵 2. 特殊矩阵 正交矩阵 AATE(E为单位矩阵,AT表示“矩阵A的转置矩阵”。)或ATAE,则n阶实矩阵A称为正交矩阵 正交矩阵有如下性质: A是正交矩阵,AT也是正交矩阵A的各行是单位向量且两两正交&#xff0…

html实现ezuikit.js萤石云直播监控,ezuikit.js实时监控实现,萤石云实时监控简单实现

效果图 实现 下面的播放url获取:登录萤石云->控制台->我的资源->设备列表->列表中:查看通道->监控地址 appKey和appSecret获取:登录萤石云->控制台->我的账号->应用信息->右侧:应用密钥 下载ezuikit…

(服务器客户端)网络通信是怎么实现的?7000字爆肝----原来java网络编程技术功不可没(多线程,URL,InetAddressm,TCP,UDP)集结

👨‍💻个人主页:元宇宙-秩沅 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 本文由 秩沅 原创 收录于专栏 java ⭐java网络编程技术⭐ 文章目录⭐java网络编程技术⭐👨‍💻一,URL类…

[附源码]Python计算机毕业设计Django的4s店车辆管理系统

项目运行 环境配置: Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术: django python Vue 等等组成,B/S模式 pychram管理等等。 环境需要 1.运行环境:最好是python3.7.7,…