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.mzph.cn/diannao/58624.shtml

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

相关文章

质数的小游戏~(牛客,cf)

添加链接描述 H 题: n 的范围是 1e6 大致的思路 就是 每一段 固定一个质数,然后这一段中的 数下标 的和都是这个质数。 对于[1 n] 这些数 ,对于n 向前找到 一个比他大的最小的质数。假设这个质数nj 。那么也就是说 我n 这个数应该放在下标为…

‘’‘’笔记

关闭防火墙及SELinux [rootserver ~]# systemctl stop firewalld 临时关闭 [rootserver ~]# systemctl disable firewalld 取消开机启动 [rootserver ~]# setenforce 0 临时关闭,重启失效 设置主机名 [rootserver ~]# ho…

【热门主题】000018 人工智能深度学习模型:探索与应用

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 【热…

Linux学习_8

第七章命令解释器-shell 主要包括Linux中特殊符号,命令别名,命令历史 概述: shell:壳,命令解释器,负责解析用户输入的命令 type命令: 查看命令是内置命令、外置命名、alias命令 type -参数 命…

C++从入门到起飞之——红黑树封装map和set 全方位剖析!

目录 1、map和set的整体框架 2、map和set迭代器的实现 3、map支持[] 4、完整源码 set.h map.h RBTree.h 1、map和set的整体框架 因为map和set的底层都是红黑树,所以我们考虑用一个红黑树的类模版去实例化map和set对象!不过,map节点中存…

php处理文件上传的五种方式

dd($_FILES); //方式一 if(!empty($_FILES[file])){ //获取文件后缀方式一 //strrchr()函数查找字符在指定字符串中从右面开始的第一次出现的位置, //如果成功,返回该字符以及其后面的字符&#xf…

用Pyhon写一款简单的益智类小游戏——2048

文字版——代码及讲解 代码—— import random# 初始化游戏棋盘 def init_board():return [[0] * 4 for _ in range(4)]# 在棋盘上随机生成一个2或4 def add_new_tile(board):empty_cells [(i, j) for i in range(4) for j in range(4) if board[i][j] 0]if empty_cells:i,…

git仓库分支

操作 切换分支 git checkout 1.2.5 git checkout 1.3.0 使用命令切换分支之后,代码内容加载过后也是切换好的

突破挑战,创新前行 | 生信科技SOLIDWORKS 2025新品发布会·合肥站精彩回顾

2024年10月18日,由生信科技举办的首场SOLIDWORKS 2025新产品发布会在安徽合肥圆满落幕。现场邀请到制造业的专家学者们一同感受SOLIDWORKS 2025最新功能,探索制造业数字化转型之路。 合肥站活动日,由生信科技副总经理徐建开场。他以智造无界&…

《C Primer Plus》中文版第十六章习题

16.17 复习题 1. 下面的几组代码由一个或多个宏组成,其后是使用宏的源代码。在每种情况下代码的结果是什么?这些代码是否是有效代码?(假设其中的变量已声明)。 a. #define FPM 5280 dist FPM * miles; b. #define FEET 4 #define POD FEET FEET plort …

15分钟学 Go 第 26 天:基本的Web服务

第26天:基本的Web服务 学习目标 在这一节中,我们将学习如何创建一个简单的HTTP服务器。我们将介绍Go语言中的net/http包,具体实现一个基本的Web服务,同时理解HTTP请求和响应的基本概念。 1. Go的HTTP服务器概述 Go语言内置的n…

Linux·进程间通讯(管道)

从本节开始将使用vscode写代码,语言也切换成C,同时OS从centOS换成ubentu。 进程之间可能存在数据传输、资源共享、通知事件、进程控制等需求,但是进程又具有独立性,所以就需要专门的进程间通讯技术(ipc)来满足需求。进程间通讯(IP…

人工智能与伦理:我们应该如何平衡科技与人性?

内容概要 在这个瞬息万变的时代,人工智能的迅猛发展让我们面对前所未有的伦理困境。科技进步带来了便利,但同时也亟需我们反思如何对待人性。尤其是在实现算法透明性时,我们要确保每一个决策背后都能被理解与追溯,这不仅是对技术…

云服务器排查微信支付接口异常

1.官方文章 网络云排查工具安装方法 - 腾讯客服 2.官方文章 网络云排查工具使用常见场景以及排查方法 - 腾讯客服 3.商户平台查看 网络波动和实际接口日志出问题时间对照

前端内存空间(堆、栈、队列、拷贝、垃圾回收)

在了解前端内存空间前,我们先学习三种基本数据结构:堆、栈、队列。 栈 栈是一种线性的数据结构,它遵循后进先出(LIFO)的原则。栈的特点是只能在栈顶进行插入和删除操作,因此栈的底部是栈中的最小值。 栈是…

浮动+flex布局

一.浮动 1.介绍 2.效果 <style> .one{ width: 100px; height: 100px; background-color: red; float: left; } .two{ width: 200px; height: 200px; background-color: blue; float: right; } </style> </head> <body> <div class"one&quo…

安全日志记录的重要性

1024程序员节不仅是对技术的庆祝&#xff0c;也是我们审视自己工作中责任的重要时刻。在现代信息安全体系中&#xff0c;安全日志记录是最关键的环节之一。它不仅能帮助企业或开发者及时发现安全威胁&#xff0c;还能在事后追踪攻击源、分析事件并采取补救措施。因此&#xff0…

架构师备考-系统分析与设计(结构化方法)

定义 1978年&#xff0c;E.Yourdon 和 L.L.Constantine 提出了结构化方法&#xff0c;即 SASD 方法&#xff0c;也可称为面向功能的软件开发方法或面向数据流的软件开发方法。Yourdon 方法是20世纪80年代使用最广泛的软件开发方法。 结构化方法提出了一组提高软件结构合…

正点原子阿尔法ARM开发板-IMX6ULL(十二)——驱动开发的简单介绍

文章目录 一、前言二、Linux驱动开发思维三、驱动开发分类四、应用程序和驱动的交互原理五、字符设备驱动开发流程 一、前言 也终于是到了这个最是激动人心的时刻了&#xff0c;那个也是从本科&#xff0c;就听说过的词汇&#xff0c;非常的让人神往&#xff0c;这个词对我而言…

人工智能原理实验二:搜索方法

一、实验目的 本实验课程是计算机、智能、物联网等专业学生的一门专业课程&#xff0c;通过实验&#xff0c;帮助学生更好地掌握人工智能相关概念、技术、原理、应用等&#xff1b;通过实验提高学生编写实验报告、总结实验结果的能力&#xff1b;使学生对智能程序、智能算法等…