python爬虫基础篇:http协议、请求头、响应头

HTTP HTTPS协议

搞爬虫就是搞http协议,位于应用层

HTTP协议以明文方式发送数据,数据无法加密,易被盗取

HTTPS协议较http协议加了个安全层,即有一个SSL协议

区别:

HTTPS协议需要一个ca证书,一般免费较少,所以需要一定费用

HTTP是超文本传输协议,信息是明文传输,https具有安全性的ssl加密传输协议。

http和https使用的是完全不同的连接方式,用的端口也不相同,http用80端口,https用443

http的连接很简单,是无状态的;https协议是有SSL+HTTP协议构建的可进行加密传输,身份认证的网络协议,比http协议安全

请求头

请求网页时点开开发者工具会出现以下内容:

网页右键检查,打开network,刷新后会抓取包,打开一个网址,header中的内容就是请求头

General

Request URL:百度一下,你就知道 请求的页面url

Request Method:GET 页面请求方式

Status Code:200 OK 相应的状态码

Remote Address:180.101.50.188:443 我们访问国内网站使用的IP地址 (443https协议;如果是http协议就是80端口)

Referrer Policy: strict-origin-when-cross-origin 用于过滤Referer内容

常见的HTTP状态码:

200 请求成功

301 永久移动

302 暂时移动

304 内容未修改

400 客户端请求错误

403 客户端请求被服务器拒绝

404 页面丢失

500 服务器内部错误

502 远程服务器响应无效

Response Headers

是服务器返回的消息头

  1. Cache-Control: max-age=0 客户端是否使用缓存

  2. Connection: keep-alive 长连接

  3. Content-Length: 43

  4. Content-Type:返回数据类型

  5. Content-Type: image/gif

  6. Date: Fri, 25 Oct 2024 12:53:33 GMT 缓存过滤的时间

  7. Expires: Fri, 25 Oct 2024 12:53:33 GMT 缓存过滤的时间,在此日期后,响应失效

  8. Last-Modified: Mon, 28 Sep 1970 06:00:00 GMT

  9. Server: nginx 服务器处理信息的软件信息,服务器版本

  10. Set-Cookie:服务器给客户端设置的Cookies

  11. Strict-Transport-Security:严格传输安全协议,在这个时间内发起的请求都是以https

  12. Transfer-Encoding:数据以块的方式发送

    Request Headers

写爬虫要写的写到request中headers中的内容

  1. Accept: image/avif,image/webp,image/apng,image/,/*;q=0.8 表示客户端能够接受的数据格式,文本

  2. Accept-Encoding: gzip, deflate, br 表示客户端可以接受的编码方式

  3. Accept-Language: zh-CN,zh;q=0.9 客户端能够接受的语言

  4. Connection: keep-alive 保持长连接,即进入新的网页,该网页也是保持连接状态

  5. Cookie: BAIDUID_BFESS=B3EEC46E7E0178A59B6BE1EF0A6D2695:FG=1; ZFY=HQBF37UF5AXdesbthNVHVqU1wVjQVZtGInpkFPF3XRA:C 用于解决http无状态的痛点,可以用来保存账号,密码信息

  6. Host: eclick.baidu.com 客户端请求的主机

  7. Referer: hao123_上网从这里开始

  8. Sec-Fetch-Dest: image

  9. Sec-Fetch-Mode: no-cors

  10. Sec-Fetch-Site: cross-site

  11. User-Agent:

    Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.198 Safari/537.36 客户端使用什么终端访问

其他

DNT :表示客户端是否允许网站追踪,1为允许

Upgrade-Insecure-Request:表示客户端优先接受加密响应,一般是在https协议会有

Program:Http1.0用来向后兼容只支持HTTP1.0的向后兼容

Cookies

Cookies是存储在电脑上的一些数据,因为HTTP是面向无连接的,也就是每一个请求和响应都是单独分开的,有时候我们需要保存用户的状态,比如你在网站一直在先,就需要记录你的信息。或者长登录的网站点击“记录账号密码”就是保存在了Cookies中

Cookies以键值对的形式存在,也就是key=value

HTML

HTML就是编写前端页面使用的代码,一般用来搭建网络骨架,界面渲染用css,实现网页交互使用js

JSON

json是一种轻量级的数据交换格式,一般用来搭建网站API

JSON语法:

数据是键值对

数据由逗号分隔

大括号保存对象

方括号保存数组

{“name”:“wy”}就是一个json对象

Ajax

举例:一个网页网站不变,内容不断刷新,例如百度图片不断下拉,内容刷新,网站不变等,就是使用Ajax实现的

Ajax是异步执行js网络请求的意思。

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

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

相关文章

笔记本电脑充不进去电怎么回事 笔记本电脑充不上电解决

当你满心欢喜地准备使用笔记本电脑,却突然发现它充不进去电,这无疑会让人感到十分困扰。究竟是什么原因导致了这一问题的出现呢?别着急,让我们一起来探寻笔记本电脑充不进去电的奥秘,并找到相应的解决办法。 一、原因…

批量修改YOLO格式的标注类别

1.解决的问题 假如你有一个YOLO格式的数据集,标注类别为0,1,2,3四个类别标签。如果你想删除标签1,只保留0,2,3类别的标注信息,或者想将标签0和标签1合并为标签1,只剩下标…

【Vulnhub靶场】DC-2

DC-2 靶场下载地址:https://download.vulnhub.com/dc/DC-2.zip 目标 本机IP:192.168.118.128 靶机IP:192.168.118.0/24 信息收集 常规我使用nmap三扫描,扫存活主机、扫端口、扫服务 第一步探测到存活主机IP为:192.1…

虚拟机网络设置为桥接模式

1、打开VMware Workstation Pro,点击“虚拟机—设置”,进入虚拟机设置页面 2、点击“网络适配器”,网络连接选择桥接模式 3、点击“编辑—虚拟网络编辑器”,进入虚拟网络编辑器页面 4、选择桥接模式,并选择要桥接到的…

Docker 部署 EMQX 一分钟极速部署

部署 EMQX ( Docker ) [Step 1] : 拉取 EMQX 镜像 docker pull emqx/emqx:latest[Step 2] : 创建目录 ➡️ 创建容器 ➡️ 拷贝文件 ➡️ 授权文件 ➡️ 删除容器 # 创建目录 mkdir -p /data/emqx/{etc,data,log}# 创建容器 docker run -d --name emqx -p 1883:1883 -p 1808…

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)

内网穿透:如何借助Cloudflare连接没有公网的电脑的远程桌面(RDP)-含详细原理配置说明介绍 前言 远程桌面协议(RDP, Remote Desktop Protocol)可用于远程桌面连接,Windows系统(家庭版除外)也是支持这种协议的,无需安装…

代理与 Hubstudio 集成

文章目录 一、什么是 Hubstudio?二、为什么是动态住宅代理?三、使用 Hubstudio 设置 Smartdaili 代理3.1. 与动态住宅代理的整合 3.2. 使用 Hubstudio 设置代理 总结 将 Smartdaili 动态住宅代理与 Hubstudio 反检测浏览器配对使用,即可轻松管理多个账户…

npm、yarn、pnpm的workspaces使用

示例项目中总会遇到npm的packages中出现的workspaces键值对,自己的项目中没接触过这个东西,到底是什么?怎么用的?简单研究记录一下: abbrev是一个npm包,提供缩写展开功能。‌ 当你定义一个缩写后&#xff0…

设计一个html+css+js的注册页,对于注册信息进行合法性检测

综合使用HTML、JavaScript和CSS进行注册页面设计,实现以下若干功能: 注意整个页面的色调和美观使用FramesetTable布局(div也可)对用户ID和用户名、口令不符合条件及时判断对口令不一致进行及时判断(34的及时判断&#…

使用 Pake 一键打包网页为桌面应用 / 客户端

项目 项目:https://github.com/tw93/Pake/ 免费ICO图片:https://icon-icons.com/zh/ 设置环境 以下教程仅针对windows系统适用 请确保您的 Node.js 版本为 18 或更高版本 文档:https://v1.tauri.app/zh-cn/v1/guides/getting-started/prerequ…

Web3的核心概念:去中心化如何改变互联网

Web3,作为互联网的下一代技术架构,正在重新定义用户与数据、平台之间的关系。与以往的Web2.0时代相比,Web3的核心在于去中心化的理念,旨在通过区块链等技术实现更高的透明度、安全性和用户控制权。 1. 数据的掌控与隐私保护 在W…

分页列表缓存

写这篇文章&#xff0c;我们聊聊分页列表缓存&#xff0c;希望能帮助大家提升缓存技术认知。 1 直接缓存分页列表结果 这是最简单易懂的方案&#xff0c;我们按照不同的分页条件查询出结果后&#xff0c;直接缓存分页结果 。 伪代码如下&#xff1a; public List<Product&…

基于LSTM-Transformer混合模型实现股票价格多变量时序预测(PyTorch版)

前言 系列专栏:【深度学习&#xff1a;算法项目实战】✨︎ 涉及医疗健康、财经金融、商业零售、食品饮料、运动健身、交通运输、环境科学、社交媒体以及文本和图像处理等诸多领域&#xff0c;讨论了各种复杂的深度神经网络思想&#xff0c;如卷积神经网络、循环神经网络、生成对…

修改huggingface的缓存目录以及镜像源

执行以下语句查看当前配置 huggingface-cli env默认输出应该如下 (py39-transformers) PS D:\py_project\transformers_demo> huggingface-cli envCopy-and-paste the text below in your GitHub issue.- huggingface_hub version: 0.26.1 - Platform: Windows-10-10.0.22…

09_实现reactive之代理 Set 和 Map

目录 创建代理建立响应式联系避免污染原始数据处理 forEachfor...ofvalues 与 keys 方法 Set 和 Map 都有特定的属性和方法来操作自身&#xff0c;因此需要单独处理。 创建代理 我们来看一段案例代码&#xff0c;体验一下和它们的独特之处&#xff0c;如下&#xff1a; const…

第二代 GPT-SoVITS V2:解锁语音克隆与合成的无限可能

在 AI 技术蓬勃发展的今天&#xff0c;第二代 GPT-SoVITS V2 如一颗璀璨的明星闪耀登场&#xff0c;为语音处理领域带来了前所未有的变革。它是一款集先进技术与强大功能于一身的声音克隆与语音合成工具&#xff0c;由 RVC 变声器创始人 “花儿不哭” 与 AI 音色转换技术 Sovit…

使用 pydub 的 AudioSegment 获取音频时长 - python 实现

通过使用 pydub 的 AudioSegment 获取音频时长&#xff0c;音频常用格式如 m4a,wav等。 安装 python 库&#xff1a; pip install pydub 获取 m4a 格式的音频时长代码如下&#xff0c;代码如下&#xff1a; #-*-coding:utf-8-*- # date:2024-10 # Author: DataBall - XIAN #…

mac nwjs程序签名公证(其他mac程序也一样适用)

为什么需要公证 mac os14.5之后的系统&#xff0c;如果不对应用进行公证&#xff0c;安装&#xff0c;打开&#xff0c;权限使用上都会存在问题&#xff0c;而且有些问题你强制开启&#xff08;sudo spctl --master-disable&#xff09;使用后可能会有另外的问题&#xff0c; …

JSON Web Token (JWT)的简单介绍、验证过程及令牌刷新思路

目录 一、JWT 1、什么是Jwt 2、为什么要使用Jwt 3、应用场景 4.Jwt的组成 4.1、Header 4.2、Payload 4.3、signature 二、Jwt验证过程 1、生成Jwt令牌 2、解析旧的Jwt 3、复制Jwt 4、Jwt有效时间测试 三、Jwt令牌刷新思路 1、配置JwtFilter过滤器 2、登录生成Jwt令…

解决Redis缓存穿透(缓存空对象、布隆过滤器)

文章目录 背景代码实现前置实体类常量类工具类结果返回类控制层 缓存空对象布隆过滤器结合两种方法 背景 缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在&#xff0c;这样缓存永远不会生效&#xff0c;这些请求都会打到数据库 常见的解决方案有两种&#xff0c;分别…