Python爬虫常见HTTP状态码及解决方案

2023-11-11

爬虫工程师在数据采集过程中,不可避免地会遇到各种各样的问题。我们需要快速地对HTTP请求返回的各种异常状态码来判断处理,以便于我们及时调整爬虫策略,优化思路,及时完成作业。

正常情况下,在使用代理IP时会出现以下错误状态码:

一、代理链接失败

还没开始,就是失败的情况也是非常常见的,工欲善其事必先利其器,我们在购买代理IP之前,先抓取几个测试一下IP地址是否失效。

二、http状态码1XX系列

请求已被接受,需要继续处理。

值得一提的是,除非在某些试验条件下,服务器禁止向此类客户端发送此类响应。

三、http状态码2XX系列

代表请求已成功被服务器接收、理解、并接受。

最常见的有200、201状态码:

1.http状态码200

请求已成功,请求所希望的响应头或数据体将随此响应返回

2.http状态码201

请求成功并且服务器创建了新的资源,且其 URI 已经随Location 头信息返回。

2.http状态码202

服务器已接受请求,但尚未处理

四、http状态码3XX系列

需要客户端采取进一步的操作才能完成请求,这些状态码用来重定向,后续的请求地址在本次响应的 Location 域中指明。

1.http状态码301

被请求的资源已永久移动到新位置。

服务器返回此响应时,会自动将请求者转到新位置。

2.http状态码302

一般访问HTTPS的网站,会出现自动跳转,这属于正常现象,如果访问的是http网站,出现302就是网站拒绝服务,这时候,出现大量302,就需要我们进行优化爬虫策略。

五、http状态码4XX系列

4XX系列:表示请求错误。代表了客户端可能发生了错误,妨碍了服务器的处理。

1.http状态码401

请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

2.http状态码403

服务器拒绝请求,可能由目标网站的防护措施导致,建议升级爬虫策略。

与401响应不同的是,身份验证并不能提供任何帮助,而且这个请求也不应该被重复提交。

3.http状态码404

404状态码:请求失败,请求所希望得到的资源未被在服务器上发现。

这个状态码被广泛应用于:当服务器不想揭示到底为何请求被拒绝或者没有其他适合的响应可用的情况下。

4.http状态码407

代理认证信息错误,需要用户认证,需要带正确的用户认证头。

5.http状态码429

返回这个状态码有两种可能:

1.请求超过了代理的限制,我们需要控制好每个代理IP的请求,降低请求或者增加IP量,例如可以按照300毫秒为单位进行管理;

2.如果大量出现429,就证明是目标网站有反爬机制,限制爬虫的请求。

六、http状态码5XX系列

服务器在处理请求的过程中有错误或者异常状态发生,也有可能是服务器意识到以当前的软硬件资源无法完成对请求的处理。

1.http状态码500

服务器遇到了一个未曾预料的状况,导致了它无法完成对请求的处理。

一般来说,这个问题都会在服务器的程序码出错时出现。

2.http状态码503

由于临时的服务器维护或者过载,服务器当前无法处理请求。

这个基本是暂时状态,一段时间会恢复

3.http状态码504

返回504有两种情况:

1.代理正在切换IP,休息一段时间再试即可;

2.目标网站不可达,也就是目标网站封了代理IP,需要做爬虫优化

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python爬虫常见HTTP状态码及解决方案 的相关文章

  • Logback 上下文选择器的实际使用

    Logback 的文档测井分离 http logback qos ch manual loggingSeparation html表明我可以使用上下文选择器 http logback qos ch manual contextSelecto
  • 将 GAE/J 上的 pdfjet 生成的 PDF 文件上传到 Google Docs

    我需要将 PDF 文件上传到用户谷歌文档 该文件是由谷歌应用引擎上的 pdfjet 生成的 我想出使用 pdfjet for gae j 生成 pdf pdfjet 使用流来创建 pdf 无论如何 是否可以将流转换为文件 以便我可以上传给用
  • 如何在java中以编程方式访问网页

    有一个网页 我想从中检索某个字符串 为此 我需要登录 单击一些按钮 填充文本框 单击另一个按钮 然后就会出现字符串 我怎样才能编写一个java程序来自动执行此操作 是否有任何有用的库用于此目的 Thanks Try HtmlUnit htt
  • 如何在Android中将文件转换为base64(如.pdf、.text)?

    如何将 SD 卡文档 pdf txt 转换为 Base 64 字符串并将字符串发送到服务器 这个方法对我有用 String encodeFileToBase64Binary encodeFileToBase64Binary yourFile
  • Eclipse 调试“未找到源”

    我刚刚开始使用 Eclipse 所以慢慢来吧 但是 当尝试调试 JUnit 测试用例时 我会收到一个对话框 指出当我在测试方法中的代码中找到此行时 未找到源代码 Assert assertEquals 1 contents size 我知道
  • 如何生成源代码来创建我正在调试的对象?

    我的典型场景 我处理的遗留代码有一个错误 只有生产中的客户端才会遇到 我附加了一个调试器并找出如何重现该问题their系统给定their输入 但是 我还不知道为什么会发生错误 现在我想在本地系统上编写一个自动化测试来尝试重现然后修复错误 最
  • Spring JSON序列化、Gson反序列化

    我目前在某些内部对象的反序列化方面遇到问题 在春天 我在使用输出之前初始化所有对象 ResponseBody 例如 这是一个响应 id 1 location id 1 extra location data id 2 location 1
  • Java ASN.1 编译器

    现在我正在使用二进制笔记 http bnotes sourceforge net 解析 ASN 1 文件以在 Java 项目中使用 它采用 ASN 1 定义并生成 Java 类 让我可以操作 ASN 1 文件 我用扩展标记碰壁了 因为它不支
  • Java中单击和双击的区别

    我搜索论坛并看到以下代码 public void mouseClicked MouseEvent e if e getClickCount 2 System out println and it s a double click wasDo
  • Struts ActionForm 属性应该是什么类型?

    我使用 Struts 1 2 4 继承了这个巨大的遗留 Java Web 应用程序 我有一个关于 ActionForms 的具体问题 其中一些仅具有字符串属性 即使对于数字 其中一些使用看似合适的类型 整数 日期 字符串等 这里的最佳实践是
  • 传输级别信息与 SOAP 消息命名空间 URI 不匹配

    我收到错误 Transport level information does not match with SOAP Message namespace URI 要求您提供详细信息以解决问题 我在客户端设置了以下内容 HttpTranspo
  • 版本差异? Java 中的正则表达式转义

    看来正则表达式转义在不同版本的 Java 中的工作方式不同 在 Java openjdk 16 0 1 中编译工作正常 在 Java openjdk 11 0 11 中抛出此编译错误 test java 15 error illegal e
  • 调整 Java 类以提高 CPU 缓存友好性

    在设计java类时 对于实现CPU缓存友好性有哪些建议 到目前为止我学到的是应该尽可能多地使用 POD 即 int 而不是整数 这样 在分配包含对象时 数据将被连续分配 例如 class Local private int data0 pr
  • 优化两个三位数乘积的最大回文数?

    我正在研究一个面试问题 我被问到这个问题 我应该编写一个程序 从两个三位数的乘积中找到最大的回文数 这里是question https projecteuler net problem 4 我想出了这种从底部开始的蛮力方法 public c
  • Java编译错误:包不存在

    在我的工作区 wsPrivate 中 我有 3 个 gradle 项目 刽子手 像素视图 Reports PixelView 和 Reports 项目编译良好 然而 Hangman 使用这两个项目 并且有些在编译时找不到包 请参阅以下错误
  • 从 Java/Spring 检索 RabbitMQ 队列中未确认消息的数量

    有没有办法返回未确认的消息数 我正在使用此代码来获取队列中的消息数 DeclareOk declareOk amqpAdmin getRabbitTemplate execute new ChannelCallback
  • Hibernate - 如何通过 Hibernate 将 java.net.URL 存储到数据库中

    我有一块田地URL countryURL in a Country班级 我想将其数据存储到COUNTRY通过 Hibernate 将表存储在数据库中 哪个休眠type我应该在休眠映射文件中使用
  • DOM 中不再存在缓存元素

    就像在类似的问题中一样 我使用appium java 尝试选择元素 在移动应用程序中 我要转到页面 之后有许多元素 android widget ImageView 0 我需要选择 6 个 例如 这样的元素并执行其他步骤 Byt 只能选择一
  • 与 System.in.read() 一起使用的文件结尾/流键盘组合是什么

    如果这个小问题已经得到解答 我深表歉意 我无法在SO找到它 使用以下 Java 简单代码从 IDE 控制台读取行 Windows 7 和 Eclipse Kepler int v try while v System in read 1 S
  • 指定不带组件的GridBagLayout的网格参数

    我试图帮助另一个用户 但遇到了一个问题 我想用 GridBagLayout 来做到这一点 c1 c2 c3 10 80 10 v v r1 B1

随机推荐

  • Spring参数校验--List<E>类型参数校验

    1 遇到的问题 今天开发接口 遇到请求参数固定为List
  • 2023年第三届能源、电力与电气工程国际会议 (CoEEPE 2023)

    会议简介 Brief Introduction 2023年第三届能源 电力与电气工程国际会议 CoEEPE 2023 会议时间 2023年11月22日 24日 召开地点 澳大利亚 墨尔本 大会官网 www coeepe org 2023年第
  • Javascript:谈谈JS的全局变量跟局部变量

    今天公司一个实习小妹子问我两段JS代码的区别 我想 好简单
  • 干货分享:六个知名的Go语言web框架

    框架一直是敏捷开发中的利器 能让开发者很快的上手并做出应用 甚至有的时候 脱离了框架 一些开发者都不会写程序了 成长总不会一蹴而就 从写出程序获取成就感 再到精通框架 快速构造应用 当这些方面都得心应手的时候 可以尝试改造一些框架 或是自己
  • 【华为OD机试】 阿里巴巴找黄金宝箱(I)【2023 B卷

    华为OD机试 真题 点这里 华为OD机试 真题考点分类 点这里 题目描述 一贫如洗的樵夫阿里巴巴在去砍柴的路上 无意中发现了强盗集团的藏宝地 藏宝地有编号从0 N的箱子 每个箱子上面贴有一个数字 箱子中可能有一个黄金宝箱 黄金宝箱满足排在它
  • BurpSuite实战教程01-web渗透安全测试(靶场搭建及常见漏洞攻防)

    渗透测试 渗透测试 Penetration test 即安全工程师模拟黑客 在合法授权范围内 通过信息搜集 漏洞挖掘 权限提升等行为 对目标对象进行安全测试 或攻击 最终找出安全风险并输出测试报告 Web渗透测试分为白盒测试和黑盒测试 白盒
  • 在浏览器输入URL,按下回车之后的流程?

    1 在浏览器中输入一个URL 2 查找本地配置文件 如果之前有访问过 浏览器会进行缓存 如果没有的话会在本机域名解析文件hosts文件中寻找是否存在该URL的域名映射 如Windows的配置文件 C Windows System32 dri
  • NIO初级例子

    NIO初级例子 前言 一 代码撸上 前言 使用window系统环境 window 环境测试 测试使用telnet ip 端口 win R cmd 输入telnet id port Ctrl send 发送信息 缺点 无阻塞 但是cpu空转
  • UE4_代理示例_时钟

    时钟 TimeOfDayHandler 注册代理 执行代理 Fill out your copyright notice in the Description page of Project Settings pragma once inc
  • 陇原战“疫“2021网络安全大赛 Web EasyJaba

    陇原战 疫 2021网络安全大赛 Web EasyJaba 文章目录 陇原战 疫 2021网络安全大赛 Web EasyJaba 不出网 参考链接 查看源码 禁用了一些类 这里说一下反编译工具的情况 之前我一直用的jd gui 但是本题的附
  • SQLi-LABS(21~25a关详解)

    SQLi LABS Less 21 查看题目环境 登陆给我回显的数据是I LOVE YOU COOKIES 这题看了网上的wp才知道原来是将我们的uname和passwd都进行base64编码 表示不知道怎么看出来的 Cookie unam
  • StandardScaler函数用法

    StandardScaler 是来自 sklearn preprocessing 模块的一个类 其作用是进行特征缩放 使得所有特征的均值为 0 标准差为 1 这种处理方式也被称为数据的标准化 Standardization 或者 Z Sco
  • webView打开的页面和手机浏览器打开的不一样

    同一个url 用webView打开的和直接打开的不一样 webView打开的自动就有个商品在里面了 而且按钮也点击无效 大神们帮帮忙吧
  • java socket聊天室 swing做界面 Tcp为通讯协议 支持私聊 群聊 发文件

    Java的的的的聊天室 源代码下载 首先我们来看看程序界面 丑到爆 勉强能用就行啦 第一个 登录界面 第二个 用户界面 第三个 服务器界面 好了上面三个界面是程序的主界面 下面我们先讲讲如何使用源代码 使用条件 一数据库 我这里用的MyS
  • Linux系统点亮LED

    目录 应用层操控硬件的两种方式 sysfs 文件系统 sysfs 与 sys 总结 标准接口与非标准接口 LED 硬件控制方式 编写LED 应用程序 在开发板上测试 对于一款学习型开发板来说 永远都绕不开LED 这个小小的设备 基本上每块板
  • webstorm配置sass

    最近用webstorm 做项目 使用create react app创建项目 安装node sass chokidar 使用命令行来将sass转换为css 不尽人意的是 在vscode 可以正常使用 到了webstorm TM 一直不会自动
  • 视频点播服务器的配置如何选择,需要多大的带宽

    对于普通的企业网站 服务器带宽只需5M 10M 每天面对1w用户是没有问题的 图片网站 10M带宽可能只支持100 1k人 天访问 然后 如果是一个视频点播网站 服务器的带宽将增加几十倍 特别是对于视频点播服务器 瓶颈是带宽 视频点播服务器
  • 知识星球-伙伴匹配系统笔记2

    朋友伙伴匹配系统笔记2 1 前端整合路由 下载vue router 由于我们使用的是vue3 所以对应的是4版本的路由 npm install vue router 4 或者 yarn add vue router 4 如下图 前端整合路由
  • BootLoader介绍

    文章目录 一 BootLoader的引入 二 BootLoader的启动方式 三 BootLoader的结构和启动过程 四 自己写一个BootLoader 1 BootLoader第一阶段 2 BootLoader第二阶段 一 BootLo
  • Python爬虫常见HTTP状态码及解决方案

    爬虫工程师在数据采集过程中 不可避免地会遇到各种各样的问题 我们需要快速地对HTTP请求返回的各种异常状态码来判断处理 以便于我们及时调整爬虫策略 优化思路 及时完成作业 正常情况下 在使用代理IP时会出现以下错误状态码 一 代理链接失败