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

爬虫的http和https基础

HTTP响应状态码响应状态码

下面来看下详细的状态码数值和说明:

200系列:
  • 200 OK:这个是最常见的,也是爬虫工程师最喜欢的,代表你本次的请求顺利拿到了响应,没有任何问题

  • 201 Created:201代表创建成功。通常是指浏览器或爬虫给服务器上传数据,服务器接受并验证数据没有问题之后,服务器返回客户端一个201,代表成功。提交数据,通常是POST方法提交

  • 202 Accepted:服务器拿到了数据,但是还没处理好结果,所以先发回一个202.这个状态码一般在爬虫中看不到,但是适合在异步操作的情况下返回。

300系列
  1. 301 Moved Permanently:当前资源的网址永久性迁移,并且会给你一个新的网址。值得注意的是,如果是POST请求拿到301,则下一次请求自动变成GET。

  2. 301 Moved Permanently:当前资源的网址永久性迁移,并且会给你一个新的网址。值得注意的是,如果是POST请求拿到301,则下一次请求自动变成GET。

  3. 301 Moved Permanently:当前资源的网址永久性迁移,并且会给你一个新的网址。值得注意的是,如果是POST请求拿到301,则下一次请求自动变成GET。

400系列
  1. 400 Bad Request:错误请求,400系列最典型的,看到这个错误,要么是请求头参数不对,要么是请求主体的内容错误。

  2. 401 Unauthorized:401认证错误,这个还是非常好识别的,身份无法识别或者身份权限不够,检查请求头中的身份字段信息和Cookie值。

  3. 403 Forbidden:禁止访问,大并发爬虫中比较容易碰到,问题很直观,你访问太多了【换IP或电脑】,或者身份权限不够【换身份信息】。

  4. 404 Not Found:404找不到,这个错误不用太在意,用浏览器测试几次就好,要么是你的网址写错了,要么是网址对应的网络资源无法加载【这不怪程序】。

  5. 405 Method Not Allowed:405方法不被允许,简单且少见的错误,意思就是你请求的姿势不对,检查请求方法,如Get、Post、Put、Delete,总有一个是对的。

500系列
  1. 500 Internal Server Error:网络错误,就和你断网了一样,具体点就是你的网络和网址所在网络,无法连通。

  2. 502 Bad Gateway:网关错误,请求出去要被网关解析目的地址并转发你的请求,这个错误就是网关不工作了,无法把你的请求发出去。这里的网关,可以理解成你的路由器或者你用的代理IP服务器。

  3. 503 Service Unavailable:服务不可用,这个就是目标服务器的问题了,你要做的是通知网站管理员或者等。一般情况下,国家网站部分有休息时间,例如晚上关网。商业服务器的服务不可用,大多是升级或者临时卡了,可以过段时间再试。

  4. 504 Gateway Timeout:网关超时,这个504和502,都是网关的问题,但是又不一样。504是你找网关转发,你默认等待180秒【3分钟】,然后网关超时了没理你;502的问题是,你压根就找不 到网关。

  5. 505 HTTP Version Not Supported:HTTP版本不支持,这个比较少见,但是肯定有。网站内容太新或者太旧,对客户端的http版本要求不一样。你需要检查下本次请求所使用的http版本,然后改 成网站指定版本,就可以解决这个问题。

爬虫解决HTTPS认证的解决问题认证的解决问题

解决方法:

  1. 验证错误,那就不验证

  2. 更新系统的证书库

  3. 更新pip库:pyopenssl和cryptography

解决思路:

  • 优先使用不认证,简单暴力,还有效

  • 运行或者部署爬虫时,记得同步pyopenssl和cryptography

  • 操作系统越新,约不容易碰到

爬虫请求不进行不验证

请求不验证操作

requests.get('中国铁路12306网站',verify=False)

  • 优势:在客户端与服务端建立连接的情况下,不会出现什么问题,数据会照常传输。

  • 缺点:可能被盗。

更新系统的证书库

更新系统证书库

更新pip库

更新pip库

总结

  • 优先使用不认证,简单暴力,还有效

  • 运行或部署爬虫时,记得同步pyopenssl和cryptography

  • 操作系统越新,越不容易碰到SSL错误

相关文章:

爬虫的http和https基础

HTTP响应状态码响应状态码 下面来看下详细的状态码数值和说明: 200系列: 200 OK:这个是最常见的,也是爬虫工程师最喜欢的,代表你本次的请求顺利拿到了响应,没有任何问题 201 Created:201代表…...

读像火箭科学家一样思考笔记05_思想实验

1. 思想实验室 1.1. 思想实验至少可以追溯到古希腊时期 1.1.1. 从那时起,它们就跨越各个学科,在哲学、物理学、生物学、经济学等领域取得重大突破 1.1.2. 它们为火箭提供动力,推翻政府,发展进化生物学,解开宇宙的奥…...

mac gitee新建工程遇到的一些问题

首先,记录一下mac系统显示隐藏文件夹的快捷键:commandshift句号,可以显示工程目录下的隐藏的git文件夹 一 git报错:‘origin‘does not appear to be a git repository的解决方法 找到工程目录下的.git/config文件发现里边没有remote orig…...

某60区块链安全之Call函数簇滥用实战一学习记录

区块链安全 文章目录 区块链安全Call函数簇滥用实战一实验目的实验环境实验原理实验内容实验过程 Call函数簇滥用实战一 实验目的 学会使用python3的web3模块 学会以太坊Delegatecall漏洞分析及利用 实验环境 Ubuntu18.04操作机 实验工具 python3 实验原理 call 外部调用…...

最新AIGC创作系统ChatGPT系统源码,支持最新GPT-4-Turbo模型,支持DALL-E3文生图,图片对话理解功能

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如…...

openssl+ SM2 + linux 签名开发实例(C++)

文章目录 一、SM2 签名理论基础二、SM2签名开发实例 一、SM2 签名理论基础 SM2是中国国家密码管理局发布的椭圆曲线密码算法标准,用于数字签名、密钥交换和公钥加密等安全通信场景。以下是SM2签名的理论基础相关知识点: 椭圆曲线密码学(Elli…...

U4_1:图论之DFS/BFS/TS/Scc

文章目录 一、图的基本概念二、广度优先搜索(BFS)记录伪代码时间复杂度流程应用 三、深度优先搜索(DFS)记录伪代码时间复杂度流程时间戳结构BFS和DFS比较 四、拓扑排序一些概念有向图作用拓扑排序 分析伪代码时间复杂度彩蛋 五、强…...

STM32框架之按键扫描新思路

STM32框架之按键扫描新思路 引入代码展示思路分析 我们学习了定时器实现毫秒级/秒级任务框架,这期我们基于任务框架学习按键扫描新思路。 引入 在按键扫描的过程中,最重要的一步就是按键消抖,解决的方法最简单粗暴的就是先扫描一次按键状态&…...

完美解决k8s master节点无法ping node节点中的IP或Service NodePort的IP

1、问题一 使用搭建好了K8S集群,先是node节点加入k8s集群时,用的内网IP,导致master节点无法操作node节点中的pod(这里的不能操作,指定是无法查看node节点中pod的日志、启动描述、无法进入pod内部,即 kubec…...

弗洛伊德算法(C++)

目录 介绍: 代码: 结果: 介绍: 弗洛伊德算法(Floyd algorithm)也称为Floyd-Warshall算法,是一种用于求解所有节点对之间的最短路径的动态规划算法。它使用了一个二维数组来存储所有节点…...

相对定位、绝对定位、固定定位、绝对定位堆叠顺序

相对定位:相对自己本身进行偏移 CSS语法: position: relative;/*相对自己进行定位*/ top: 10px;/*距离上边*/ left: 10px;/*距离左边*/ 演示图: 绝对定位:默认以浏览器进行定位。如果想依照父盒子定位,需要在父盒子…...

px4+vio实现无人机室内定位

文章主要讲述px4 如何利用vins_fusion里程计数据实现在室内定位功能。 文章基于以下软、硬件展开。 硬件软件机载电脑: Intel NUC系统:Ubuntu 20.04相机: Intel Realsense D435iros:noetic飞控:Pixhawk 2.4.8固件&am…...

享元模式 rust和java的实现

文章目录 享元模式介绍实现javarust实现代码 rust仓库rust仓库 享元模式 享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应…...

XmlElement注解在Java的数组属性上,以产生多个相同的XML元素

例如&#xff0c;下面这段XML数据&#xff0c;有多个data元素&#xff0c;并且它们级别相同: <?xml version"1.0" encoding"UTF-8"?><request><reqtype>05</reqtype><secret>test</secret><body><userid&…...

SQLServer 数字加千分位 用FORMAT函数强转不管多大位数

问题 CONVERT ( money, CONVERT ( money, CAST ( round( FTP_AMOUNT, 2 ) AS NUMERIC ( 20, 2 ) ) ) 1 ) AS FTP_AMOUNT用的money函数 结果空间不足&#xff0c;无法将 money 值转换为 varchar。 可以强转 select FORMAT(CAST ( round( ‘-8926143870680.62000000’, 2 ) AS N…...

说说mvc和mvvm的区别和联系

mvvm 与mvc mvvm 与mvcmvc和mvvm的区别和联系 举例说明mvvm与mvc MVC是一种用于构建应用程序的架构模式&#xff0c;它也将应用程序的逻辑和界面分离。它由三个主要组件组成&#xff1a; 模型&#xff08;Model&#xff09;&#xff1a;表示应用程序的数据和业务逻辑。视图&a…...

linux rsyslog综合实战2

本次我们通过rsyslog服务将A节点服务器上的两个(E.g:多个日志也可以)日志(Path:/var/log/245-1.log、245-2.log)实时同步到B节点服务器目录下(Path:/opt/rsyslog/245) 1.rsyslog架构 2.环境信息 环境信息 HostnameIpAddressOS versionModuleNotersyslog1192.168.10.245CentOS…...

AcWing 4. 多重背包问题 I 学习笔记

有 N&#xfffd; 种物品和一个容量是 V&#xfffd; 的背包。 第 i&#xfffd; 种物品最多有 si&#xfffd;&#xfffd; 件&#xff0c;每件体积是 vi&#xfffd;&#xfffd;&#xff0c;价值是 wi&#xfffd;&#xfffd;。 求解将哪些物品装入背包&#xff0c;可使物…...

解决selenium使用chrome下载文件(如pdf)时,反而打开浏览器的预览界面

文章目录 解决方法完整的配置 解决方法 在初始化浏览器的时候&#xff0c;添加以下配置即可&#xff1a; option webdriver.ChromeOptions()prefs {"profile.managed_default_content_settings.images": 2, # 禁止加载图片# permissions.default.stylesheet: 2, …...

2024年山东省职业院校技能大赛中职组“网络安全”赛项竞赛试题-C

2024年山东省职业院校技能大赛中职组 “网络安全”赛项竞赛试题-C 一、竞赛时间 总计&#xff1a;360分钟 二、竞赛阶段 竞赛阶段 任务阶段 竞赛任务 竞赛时间 分值 A、B模块 A-1 登录安全加固 180分钟 200分 A-2 本地安全策略设置 A-3 流量完整性保护 A-4 …...

AI-调查研究-01-正念冥想有用吗?对健康的影响及科学指南

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; &#x1f680; AI篇持续更新中&#xff01;&#xff08;长期更新&#xff09; 目前2025年06月05日更新到&#xff1a; AI炼丹日志-28 - Aud…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题&#xff1a; 下面创建一个简单的Flask RESTful API示例。首先&#xff0c;我们需要创建环境&#xff0c;安装必要的依赖&#xff0c;然后…...

Robots.txt 文件

什么是robots.txt&#xff1f; robots.txt 是一个位于网站根目录下的文本文件&#xff08;如&#xff1a;https://example.com/robots.txt&#xff09;&#xff0c;它用于指导网络爬虫&#xff08;如搜索引擎的蜘蛛程序&#xff09;如何抓取该网站的内容。这个文件遵循 Robots…...

tree 树组件大数据卡顿问题优化

问题背景 项目中有用到树组件用来做文件目录&#xff0c;但是由于这个树组件的节点越来越多&#xff0c;导致页面在滚动这个树组件的时候浏览器就很容易卡死。这种问题基本上都是因为dom节点太多&#xff0c;导致的浏览器卡顿&#xff0c;这里很明显就需要用到虚拟列表的技术&…...

Angular微前端架构:Module Federation + ngx-build-plus (Webpack)

以下是一个完整的 Angular 微前端示例&#xff0c;其中使用的是 Module Federation 和 npx-build-plus 实现了主应用&#xff08;Shell&#xff09;与子应用&#xff08;Remote&#xff09;的集成。 &#x1f6e0;️ 项目结构 angular-mf/ ├── shell-app/ # 主应用&…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

基于鸿蒙(HarmonyOS5)的打车小程序

1. 开发环境准备 安装DevEco Studio (鸿蒙官方IDE)配置HarmonyOS SDK申请开发者账号和必要的API密钥 2. 项目结构设计 ├── entry │ ├── src │ │ ├── main │ │ │ ├── ets │ │ │ │ ├── pages │ │ │ │ │ ├── H…...

Python异步编程:深入理解协程的原理与实践指南

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 持续学习&#xff0c;不断…...