【Python网络爬虫笔记】2-HTTP协议中网络爬虫需要的请求头和响应头内容

1 HTTP 协议整理

HTTP(Hyper Text Transfer Protocol)即超文本传输协议,是用于从万维网(WWW)服务器传输超文本到本地浏览器的传送协议,直白点儿,就是浏览器和服务器之间的数据交互就是通过 HTTP 协议进行的。
HTTP 协议把一条消息分为三大块内容,无论是请求还是响应都包含这三块内容:

1.请求(Request)

  • 请求行(Request Line):包含请求方式、请求 URL 地址和协议。
  • 请求头(Request Header):放置一些服务器要使用的附加信息。
  • 请求体(Request Body):一般放置一些请求参数。

2. 响应(Response)

  • 状态行(Status Line):包含协议和状态码。
  • 响应头(Response Header):放置一些客户端要使用的附加信息。
  • 响应体(Response Body):服务器返回的真正客户端要用的内容(如 HTML、json

等)。

二、网络爬虫需要的请求头和响应头内容

1.请求头(Request Header)中网络爬虫可能需要的内容:

  • User - Agent:
    这个字段用于标识客户端的类型,网络爬虫需要设置一个合适的 User - Agent 来模拟浏览器,避免被服务器识别为爬虫而拒绝访问。例如:User - Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36
    在这里插入图片描述

  • Referer:
    这个字段用于表示当前请求的来源页面。有些网站会根据 Referer 来判断请求是否合法,网络爬虫可能需要设置合适的 Referer 来模拟正常的用户访问路径。例如:Referer: https://www.example.com/previous - page

  • Cookie:
    如果网站需要用户登录或者使用了基于 Cookie 的会话管理,网络爬虫可能需要获取并传递合适的 Cookie 来维持会话。例如:Cookie: sessionid = 1234567890abcdef; userid = 123

2.响应头(Response Header)中网络爬虫可能需要的内容:

  • Content - Type:
    这个字段用于表示响应体的内容类型,例如Content - Type: text/html; charset = UTF - 8表示响应体是 HTML 格式,字符集是 UTF - 8。网络爬虫可以根据 Content - Type 来判断如何处理响应体内容。

  • 在这里插入图片描述

  • Content - Length:
    这个字段表示响应体的长度,网络爬虫可以根据这个字段来判断是否已经完整地接收了响应体内容。例如:Content - Length: 12345

  • Set - Cookie:
    如果服务器在响应头中设置了新的 Cookie,网络爬虫需要获取并保存这些 Cookie,以便在后续的请求中传递。例如:Set - Cookie: newsessionid = 0987654321fedcba; expires = Fri, 31 Dec 9999 23:59:59 GMT; path = /
    在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频: 你也可以直接通过Bilibili链…

物料理解笔记·蓝白段子线·端子线座子焊接反了怎么处理!!!

目录 蓝白端子排线 端子线座子焊接错了怎么办 端子线如何拆线 编写不易,请勿搬运,仅供学习,感谢理解 蓝白端子排线 蓝白端子排线,这种端子线常用与编码电机的接线,或者在板子上通过提供段子线的接口,通…

BUUCTF—Reverse—GXYCTF2019-luck_guy(9)

下载附件,照例扔入Exeinfo PE查看信息 可执行文件,IDA 64位直接干 进main函数,F5反编译,看主要处理函数,跳转进去 查看,点进patch_me(v4)看看是怎么回事 这里已经相当清楚,逻辑就是如果你输入的…

jmeter学习(7)命令行控制

jmeter -n -t E:\IOT\test2.jmx -l E:\IOT\output\output.jtl -j E:\IOT\output\jmeter.log -e -o E:\IOT\output\report IOT下创建output 文件夹,jmx文件名避免中文,再次执行output.jtl不能有数据要删除

OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解

摘要:本文详细介绍了 OpenCV 中用于查找图像轮廓的 cv2.findContours() 函数以及绘制轮廓的 cv2.drawContours() 函数的使用方法。涵盖 cv2.findContours() 各参数(如 mode 不同取值对应不同轮廓检索模式)及返回值的详细解析,搭配…

智能探针技术:实现可视、可知、可诊的主动网络运维策略

网络维护的重要性 网络运维是确保网络系统稳定、高效、安全运行的关键活动。在当今这个高度依赖信息技术的时代,网络运维的重要性不仅体现在技术层面,更关乎到企业运营的方方面面。网络运维具有保障网络的稳定性、提升网络运维性能、降低企业运营成本等…

Elasticsearch集群如何实现高可用和一致性

Elasticsearch集群如何实现高可用和一致性 Elasticsearch (ES) 的高可用性是指集群在部分节点或分片出现故障时,仍能确保数据的持续可用和集群的稳定运行。ES 通过分片机制、主从结构、分配策略、故障恢复和分布式一致性等多种机制实现高可用。 1. 分片机制和副本…

实现Linux平台自定义协议族

一 简介 我们常常在Linux系统中编写socket接收TCP/UDP协议数据,大家有没有想过它怎么实现的,如果我们要实现socket接收自定义的协议数据又该怎么做呢?带着这个疑问,我们一起往下看吧~~ 二 Linux内核函数简介 在Linux系统中要想…

数组和链表OJ题

leetcode用编译器调试的技巧 数组和链表练习题 leetcode/reverse_Link/main.c Hera_Yc/bit_C_学习 - 码云 - 开源中国 1、移除元素 ​​​​​​27. 移除元素 - 力扣(LeetCode) int removeElement(int* nums, int numsSize, int val) {int src 0, …

VSCode 使用教程:项目使用配置、使用哪些插件、Live Server使用问题及解决方案(你想要的,都在这里)

VSCode的配置: Ⅰ、VSCode 可能需要的项目配置:1、项目颜色主题的切换:其一、点击设置 -> 选择主题 -> 选择颜色主题:其二、通过上下键操作,选择想要的主题: 2、项目文件图标主题的切换:其…

28 基于51单片机的两路电压检测(ADC0808)

目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于51单片机,通过ADC0808获取两路电压,通过LCD1602显示 二、硬件资源 基于KEIL5编写C代码,PROTEUS8.15进行仿真,全部资源在页尾,提供…

宠物空气净化器推荐2024超详细测评 希喂VS霍尼韦尔谁能胜出

最近有粉丝一直在评论区和后台探讨宠物空气净化器是不是智商税的问题,有人认为宠物空气净化器肯定不是智商税,有些人认为将其购回家就是个没用的东西,还占地方,双方各有自己的观点。 其实宠物空气净化器和普通的空气净化器是有很大…

鸿蒙学习笔记:CheckboxGroup组件

本次鸿蒙CheckboxGroup组件实战,先创建CheckboxGroupDemoAbility与CheckboxGroupDemo.ets页面,在ets页面以Row、Column布局呈现界面。利用CheckboxGroup管理爱好相关Checkbox,通过状态记录及“确定”按钮实现选择展示。设置页面为首页后启动应…

[Java]微服务之分布式事务

介绍 下单业务,前端请求首先进入订单服务,创建订单并写入数据库。然后订单服务调用购物车服务和库存服务: 购物车服务负责清理购物车信息库存服务负责扣减商品库存 问题分析: 下单过程中, 订单服务创建订单, 插入自己的数据库, 执行成功购物车服务, 清…

如何在谷歌浏览器中使用开发者工具调试网页

在数字时代,网页开发和调试已成为每个前端开发人员必备的技能。谷歌浏览器(Google Chrome)提供了强大的开发者工具,帮助开发者快速定位和修复网页中的问题。本文将详细介绍如何使用Chrome开发者工具来调试网页,同时也会…

新增工作台模块,任务中心支持一键重跑,MeterSphere开源持续测试工具v3.5版本发布

2024年11月28日,MeterSphere开源持续测试工具正式发布v3.5版本。 在这一版本中,MeterSphere新增工作台模块,工作台可以统一汇总系统数据,提升测试数据的可视化程度并增强对数据的分析能力,为管理者提供测试工作的全局…

在Springboot项目中实现将文件上传至阿里云 OSS

oss介绍 阿里云对象存储服务(OSS)是一种高效、安全和成本低廉的数据存储服务,可以用来存储和管理海量的数据文件。本文将教你如何使用 Java 将文件上传到阿里云 OSS,并实现访问文件。 1. 准备工作 1.1 开通 OSS 服务 登录阿里云…

CrystalDiskInfo:硬盘健康监测工具简介和下载

原论坛给你更好的阅读体验:CrystalDiskInfo:硬盘健康监测工具简介和下载 | 波波论坛 引言 在日常使用电脑时,硬盘的健康状态对于系统的稳定性和数据的安全性至关重要。硬盘出现故障可能会导致数据丢失,严重时甚至会使整个系统无…

springboot339javaweb的新能源充电系统pf(论文+源码)_kaic

毕 业 设 计(论 文) 题目:新能源充电系统的设计与实现 摘 要 如今社会上各行各业,都喜欢用自己行业的专属软件工作,互联网发展到这个时候,人们已经发现离不开了互联网。新技术的产生,往往能解…