爬虫你需要知道的:什么是http请求
1. 什么是http请求
我们将通过发送http请求来获取网页内容。http是HyperText Transfer Protocol的缩写,意思是超文本传输协议,它是一种客户端和服务器之间的请求响应协议。
浏览器就可以看作是一个客户端,当我们在浏览器地址栏输入想访问的网址,按下回车后,浏览器就会像服务端发送一个http请求,然后等待服务器返回给浏览器响应。
http有多种不同的请求方法,最常见的是get和post。由于爬虫程序大部分都是在获取数据,所以我们发送的请求大部分情况下都用get方法。
2. 一个完整的http请求组成
一个http请求由三个部分组成:

-
请求行会包含方法类型、资源路径和协议版本等等
资源路径指明了我们将要访问服务器的哪个资源,资源路径后方也可以添加查询参数。

-
请求头会包含一些给服务器的信息,比如Host、User-Agent、Accept等等
Host 指主机域名,结合请求行里的路径资源,可以得到一个完整的网址。
User-Agent 用来告知服务器客户端的相关信息,比如请求是浏览器发出来的还是其他东西发出来的如果是浏览器的话,类型是什么、版本是什么等等。
Accept 是想告诉服务器客户端想接受的响应数据是什么类型的,接受多种类型的话,可以用逗号进行分隔,如果是
*/*表示什么类型都可以。 -
请求体里面可以放客户端传给服务器的其他任意数据,但是
get方法的请求体一般是空的。
当服务端收到客户端传来的请求后,它会根据所有这些信息返回http响应,响应也由三个部分组成:

-
状态行包含了协议版本、状态码、状态消息
其中状态消息常见的有以下这些:

-
响应头会包含一些想要告知客户端的信息
Date 是生成响应的日期和时间。
Content-Type 返回内容的类型及编码格式。例如
text/html;charset=utf-8指响应类型是HTML,编码是utf-8。 -
响应体里是服务端想要告知客户端的一些内容
比如如果前面的内容类型是HTML,这里返回的就是HTML内容。
文章整理自:这绝对是全B站最用心(没有之一)的Python+爬虫公开课程
相关文章:
爬虫你需要知道的:什么是http请求
1. 什么是http请求 我们将通过发送http请求来获取网页内容。http是HyperText Transfer Protocol的缩写,意思是超文本传输协议,它是一种客户端和服务器之间的请求响应协议。 浏览器就可以看作是一个客户端,当我们在浏览器地址栏输入想访问的…...
MCU FT61F14x入门
目录 前言一、CMIDE的使用二、系统时钟与睡眠2.1 上电复位 (POR)与系统复位2.2 振荡器和系统时钟2.3 SLEEP睡眠模式 (POWER-DOWN)2.4 低电压检测/比较器 (LVD) 三、I/O端口与中断四、串口USART五、定时器六、ADC七、EEPROM 前言 FT61F14x是辉芒微电子的微控制器,是一…...
星火大模型——多模态API调用(图像+文本)
参考文档 图片理解 API 文档 环境配置 pip3 install websocket-client核心代码 import _thread as thread import base64 import datetime import hashlib import hmac import json from urllib.parse import urlparse import ssl from datetime import datetime from time…...
计算机基础面试题 |22.精选计算机基础面试题
🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…...
kafka连接失败时springboot项目启动停机问题
问题:springboot整合kafka,作为消费端,对端的kafka系统是在生产环境,在本地开发测试时配置了对端的生产环境的kafka地址。因为开发环境和对端生产环境是不通的,所以连接肯定是失败的,kafka的连接失败导致sp…...
【算法题】46. 全排列
题目 给定一个不含重复数字的数组 nums ,返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1: 输入:nums [1,2,3] 输出:[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]] 示例 2: 输入࿱…...
可视可交互!在全志H618上用OpenCV读取图像显示到PyQt5窗口上
OpenCV能够处理图像、视频、深度图像等各种类型的视觉数据,在某些情况下,尽管OpenCV可以显示窗口,但PyQt5可能更适合用于创建复杂的交互式应用程序,而自带GPU的H618就成为了这些图像显示的最佳载体。 这里分享一个代码࿰…...
现代密码学 补充1:两种窃听不可区分实验的区别
两种窃听不可区分实验 写在最前面两种窃听不可区分实验1. 完美保密中的窃听不可区分实验2. 窃听不可区分实验(对称加密算法)主要区别 写在最前面 两种窃听不可区分实验 两种窃听不可区分实验(Eavesdropping Indistinguishability Experimen…...
多功能号卡推广分销管理系统 流量卡推广分销网站源码-目前市面上最优雅的号卡系统
一套完善,多功能,的号卡分销系统,多接口,包括运营商接口,无限三级代理,最简单易用的PHP~ 目前市面上最优雅的号卡系统!没有之一 软件架构说明 环境要求php7.3以上(建议低于8.0),MySQL5.6以上,Nginx1.16(无要求) 产品特性 自动安装向导 易于安装使用部署 多个第…...
MySQL语法及IDEA使用MySQL大全
在项目中我们时常需要写SQL语句,或简单的使用注解直接开发,或使用XML进行动态SQL之类的相对困难的SQL,并在IDEA中操控我们的SQL,但网上大都图方便或者觉得太简单了,完全没一个涵盖两个方面的讲解。 单表: …...
分布式系统网关和sentinel
1.网关 作用:网关是给分布式系统进行请求路由分配的服务 功能: 请求路由 请求过滤 请求鉴权 流量控制 统一日志 2.搭建网关(微服务) 2.1依赖、配置文件、启动类 2.2配置路由(id,断言,…...
无法访问Bing网站 - 解决方案
问题 Bing官方网址:https://www.bing.com/ 电脑无法访问Bing网站,但手机等移动设备可以访问Bing网站,此时可尝试以下方案。 以下方案适用于各种系统,如Win/Linux系统。 解决方案 方案1 修改Bing网址为:https://www4…...
Spring Boot 自动装配原理
Java面试题目录 Spring Boot自动装配原理 Spring Boot启动类上的SpringBootApplication注解中包含EnableAutoConfiguration注解,表示开启自动装配。在EnableAutoConfiguration注解中使用Import注解引入AutoConfigurationImportSelector组件,此类中通过S…...
golang如何生成csv文件
在Go语言中,可以使用标准库中的"encoding/csv"包来生成CSV文件。下面是一个简单的示例代码,演示如何使用Go生成CSV文件: package mainimport ("encoding/csv""os" )func main() {// 创建一个新的CSV文件file,…...
你真的掌握了“C语言分支循环”吗
目录 前言 1. if语句 1.1 if 1.2 else 1.3 分支中包含多条语句 1.4 嵌套if 1.5 悬空else问题 2. 关系操作符 3. 条件操作符 4. 逻辑操作符:&& , || , ! 4.1 逻辑取反运算符 4.2 与运算符 4.3 或运算符 4.4 练习:闰年的判…...
Apollo计算几何算法(一)
Planning模块,路径和速度曲线抽象成折线(Polyline),障碍物抽象成多边形(Polygon)。在碰撞检测、投影计算距离、平滑曲线等方面应用广泛。 1 几何算法 1.1 线段 moudles/common/math/line_segment2d.h n…...
计算机网络、浏览器相关高频面试题
为什么使用CDN 会更快? 没有使用CDN的情况下,用户从浏览器输入地址,依次经过浏览器缓存、操作系统缓存(如本地host文件)、域名解析服务器、根域名解析服务器、顶级域名服务器直到找到对应的ip地址返回给用户ÿ…...
遥感单通道图像保存为彩色图像
系列文章目录 第一章PIL单通道图像处理 文章目录 系列文章目录前言一、代码实现二、问题记录在这里插入图片描述 总结 前言 将单通道图像以彩色图像的形式进行保存主要使用了PIL库 一、代码实现 palette_data [***]:可以进行自定义设置 代码如下: fr…...
如何将字符串转换为整数
将字符串转换为整数是常见的编程需求。以下是几种常见编程语言的示例: Python str_num "123" num int(str_num) print(num) # 输出: 123 JavaScript let str_num "123"; let num parseInt(str_num); console.log(num); // 输…...
如何在Linux上安装使用达芬奇DaVinci-Resolve视频剪辑|附带格式转换脚本
如何在openSUSE-Linux上安装DaVinci-Resolve 您是否还在等待Adobe套件在Linux上的到来?您是否曾多次尝试通过Wine使用Premiere?您是否还在想苹果为什么不以Linux本机版本发布Final Cut Pro? 如果您对所有这些问题中的一个或全部回答是&…...
CentOS 8.5最小化安装实战:为什么我只选Minimal Install,以及后续必装的10个软件包
CentOS 8.5最小化安装实战:为什么我只选Minimal Install,以及后续必装的10个软件包 当你面对CentOS 8.5安装界面中那个看似简单的"Software Selection"选项时,是否曾犹豫过该选择哪个?作为一个经历过无数次系统安装的老…...
从零到一:用面包板和晶体管手搓一个4bit加法器(附完整电路图与避坑指南)
从零到一:用面包板和晶体管手搓一个4bit加法器(附完整电路图与避坑指南) 深夜的实验室里,面包板上横七竖八地插着几十个三极管和电阻,当我第三次测量到错误的输出电平时,终于意识到——这个看似简单的4bit加…...
AI写专著必备攻略:掌握这些技巧,用AI 3天完成20万字专著撰写
学术专著在写作时需要严谨的态度,而这种严谨性则依赖于大量的资料和数据支持。收集资料和整合数据恰恰是写作过程中最为繁琐且耗时的步骤。研究者需要广泛查找国内外的前沿文献,这不仅要求文献的权威性和相关性,还需追溯到原始来源࿰…...
终极解决方案:NoSleep防休眠工具让你的Windows永不休眠
终极解决方案:NoSleep防休眠工具让你的Windows永不休眠 【免费下载链接】NoSleep Lightweight Windows utility to prevent screen locking 项目地址: https://gitcode.com/gh_mirrors/nos/NoSleep 你是否曾经遇到过这样的困扰?深夜下载大型文件到…...
Polar SI9000实战:从叠层规划到阻抗计算,一次讲清四层板到八层板的阻抗控制核心
Polar SI9000实战:从叠层规划到阻抗计算,一次讲清四层板到八层板的阻抗控制核心 在高速PCB设计中,阻抗控制早已从"锦上添花"变成了"不可或缺"的基础要求。无论是USB3.0的90欧姆差分对,还是DDR4的40欧姆单端走…...
客户月亏30万才醒悟:低价模具,才是最昂贵的选择
一、客户困境:贪小利省2万,终致月亏30万、天天停机一位专注小家电外壳生产的客户,在模具采购时,一心想压缩成本,最终选择了比常规方案便宜2万元的低价模具。初期试模阶段,产品外观、尺寸看似无异常…...
高通机器人RB5平台:从RAM转储分析到安全启动的实战配置指南
1. 高通RB5平台RAM转储分析实战 第一次拿到高通RB5开发板时,遇到系统崩溃完全不知道从何下手。后来发现RAM转储分析就像给机器人做"脑部CT",能完整记录崩溃瞬间的系统状态。这里分享我摸索出来的完整操作流程。 1.1 环境准备与工具链配置 工欲…...
MTKClient实战手册:联发科芯片调试的5个专业技巧解决常见问题
MTKClient实战手册:联发科芯片调试的5个专业技巧解决常见问题 【免费下载链接】mtkclient MTK reverse engineering and flash tool 项目地址: https://gitcode.com/gh_mirrors/mt/mtkclient 当你的联发科设备遇到无法连接、分区读写失败或固件提取困难时&am…...
从沙子到车辙(1.5):从图灵机到 ECU
1.5 从图灵机到 ECU 一座恶魔般的机房 1945 年,费城,宾夕法尼亚大学摩尔工程学院。 一座 30 吨重的巨兽蹲在一间约 167 平方米的机房里。它的名字叫 ENIAC(Electronic Numerical Integrator and Computer)——世界上第一台通用…...
保姆级教程:用VMware Workstation Pro 16给虚拟机装Win11,手把手教你用Ghost镜像(含UEFI/BIOS切换避坑)
VMware Workstation Pro 16实战:零基础Ghost安装Windows 11全流程解析 在虚拟化技术日益普及的今天,使用VMware Workstation Pro创建虚拟机已成为开发者测试新系统的首选方案。特别是对于Windows 11这样的新操作系统,直接在物理机上安装可能存…...
