当前位置: 首页 > article >正文

【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 = /
    在这里插入图片描述


http://www.kler.cn/a/417590.html

相关文章:

  • 时间表格Java
  • 【MySQL】创建数据库、用户和密码
  • AD软件如何快速切换三维视图,由2D切换至3D,以及如何恢复
  • 深度学习框架PyTorch中的Tensor详解
  • yolov10 获取误检,漏检
  • Git远程仓库过大导致clone失败的解决方法
  • Z2400046 基于JAVA+SSM+MYSQL的高校运动会管理系统的设计与实现 源码 配置 文档
  • Nginx:ssl
  • 算法练习——二分算法
  • Linux的SSH远程管理及安全配置
  • [OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker pull线上镜像方式构建编译环境
  • ESP32-S3模组上跑通ES8388(8)
  • android studio Terminal控制台命令打包 apk
  • 0.shell 脚本执行方式
  • 零基础Python学习
  • centos7.6升级cmake+编译pcm工具
  • Mybatis:CRUD数据操作之单个条件(动态SQL)
  • FreeRTOS 软件定时器
  • Selenium 自动化测试demo
  • 【K230 CanMV】图像识别-摄像头获取图像 Sensor 函数全解析
  • 开源法律、政策和实践
  • ArcGIS栅格影像裁剪工具
  • R安装rgdal报错 解决办法
  • Android 引入 proto 项目及使用方法
  • 网络安全相关证书资料
  • linux环境下,导出conda和pip的安装包和对应版本