python爬虫ip封禁应对办法

目录

一、背景现象

二、准备工作

三、代码实现


一、背景现象

        最近在做爬虫项目时,爬取的网站,如果发送请求太频繁的话,对方网站会先是响应缓慢,最后是封禁一段时间。一直是拒绝连接,导致程序无法正常预期的爬取数据。针对这种情况,可以使用代理ip请求来规避,同时增加一些随机等待时间(如果性能要求不高)。

二、准备工作

        若要用代理ip去请求,那首先要有一个或多个代理ip。代理ip的获取可以寻找专门搜集提供代理ip的网站(如果有私人或公用的代理ip就更好了),直接使用即可。

        这里注意一般提供的代理ip会有匿名程度,有透明、普匿、高匿等。如果你使用了匿名程度为透明的ip去请求,那么代理ip方会看到你用人家的ip干了什么,就是说你的行为透明化对于代理ip提供方。相反高匿,你的行为不会对代理ip提供方公开。

三、代码实现

        基本思路就是使用代理ip进行请求,获取请求响应返回。使用request库,配置请求代理ip即可。

import requests
import random
from retrying import retry# 代理ip
proxy_list = ['http://ip:port','http://ip:port'
]reqSession = requests.Session()
# # 也可以直接设置全局
# reqSession.proxies = {
#     'http': 'http://121.37.195.205:80',
#     'https': 'http://121.37.195.205:80',
# }@retry(stop_max_attempt_number=10, wait_random_min=10000, wait_random_max=50000)
def get_detail_data(page_url):# 随机选取一个ip使用,避免一直使用一个ip,导致被封禁。one_proxy = random.choice(proxy_list)proxy = {'http': one_proxy,'https:': one_proxy}resPage = reqSession.get(page_url, headers=headers, proxies=proxy, timeout=100)if resPage.status_code != 200:raisereturn resPage.text

四、总结

        虽然现在可以解决ip封禁的问题,但是代码还是有一些隐形问题的。后续如果你使用的代理ip若失效了,但你不知道或没有及时更换的情况。解决办法是将代理ip存储到数据库,另外写一个爬虫程序去收集代理ip,更换数据库里的代理ip。业务爬虫程序读取数据库里的代理ip去进行请求。同时可以设置程序异常发送邮件,这样也可以及时定位问题。

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

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

相关文章

【AIGC】Qwen3-Embedding:Embedding与Rerank模型新标杆

Qwen3-Embedding:Embedding与Rerank模型新标杆 一、引言二、技术架构与核心创新1. 模型结构与训练策略(1)多阶段训练流程(2)高效推理设计(3)多语言与长上下文支持 2. 与经典模型的性能对比 三、…

算法竞赛阶段二-数据结构(32)数据结构简单介绍

数据结构的基本概念 数据结构是计算机存储、组织数据的方式,旨在高效地访问和修改数据。它是算法设计的基础,直接影响程序的性能。数据结构可分为线性结构和非线性结构两大类。 线性数据结构 线性结构中,数据元素按顺序排列,每…

Windows桌面图标修复

新建文本文件,粘入以下代码,保存为.bat文件,管理员运行这个文件 duecho off taskkill /f /im explorer.exe CD /d %userprofile%\AppData\Local DEL IconCache.db /a start explorer.exe echo 执行完成上面代码作用是删除桌面图标缓存库&…

13.react与next.js的特性和原理

🟡 一句话总结 React 专注于构建组件,而 Next.js 是基于 React 的全栈框架,提供了页面路由、服务端渲染和全栈能力,让你能快速开发现代 Web 应用。 React focuses on building UI components, while Next.js is a full-stack fra…

全栈监控系统架构

全栈监控系统架构 可观测性从数据层面可分为三类: 指标度量(Metrics):记录系统的总体运行状态。事件日志(Logs):记录系统运行期间发生的离散事件。链路追踪(Tracing):记录一个请求接入到结束的处理过程,主要用于排查…

云服务运行安全创新标杆:阿里云飞天洛神云网络子系统“齐天”再次斩获奖项

引言 为认真落实工信部《工业和信息化部办公厅关于印发信息通信网络运行安全管理年实施方案的通知》,2025年5月30日中国信息通信研究院于浙江杭州举办了“云服务运行安全高质量发展交流会”,推动正向引导,巩固云服务安全专项治理成果。会上&a…

刀客doc:WPP走下神坛

一、至暗时刻? 6月11日,快消巨头玛氏公司宣布其价值17 亿美元,在全球70个市场的广告业务交给阳狮集团,这其中包括M&Ms、士力架、宝路等知名品牌。 此前,玛氏公司一直是WPP的大客户。早在今年3月,WPP就…

进行性核上性麻痹饮食攻略:营养安全双护航

进行性核上性麻痹是一种罕见的神经系统退行性疾病,主要影响患者的运动、平衡和吞咽功能。除了医学干预,科学的饮食管理也能在一定程度上减轻症状,提高生活质量。 由于患者常出现吞咽困难,食物质地的选择尤为重要。应避免干硬、大块…

阿里云可观测 2025 年 5 月产品动态

本月可观测热文回顾 文章一览: StoreView SQL,让数据分析不受地域限制 不懂 PromQL?AI 智能体帮你玩转大规模指标数据分析 DeepWiki LoongCollector:AI 重塑开源代码理解 从 o11y 2.0 说起,大数据 Pipeline 的「…

React 基础状态管理方案

1. useState useState 是 React 提供的最基本的 Hook,用于在函数组件中添加状态管理。它返回一个状态变量和一个更新状态的函数。 1.1. 使用场景 适合管理简单的状态。 适合管理组件内部的局部状态。 1.2. 示例代码 import React, { useState } from react;function Cou…

VScode中如何创建项目分支

在 VS Code 中为前端项目创建自己的分支是一个常见的开发实践,以下是详细步骤: 前提条件 已安装 Git已安装 VS Code已有前端项目或克隆了远程仓库 创建分支步骤 1. 打开项目 在 VS Code 中打开你的前端项目文件夹。 2. 初始化 Git 仓库&#xff08…

Flutter 导航与路由管理:Navigator 的深入解析与实践

在移动应用开发中,页面导航是用户体验的核心组成部分。Flutter 提供了强大而灵活的导航系统,主要通过 Navigator 组件来实现。本文将全面介绍 Flutter 中 Navigator 的使用方法,涵盖基础导航操作、进阶技巧以及最佳实践。 一、Flutter 导航系…

预测性去匿名化攻击(PDAA):重塑数据安全攻防边界

一、数据合规时代的“脱敏”悖论:价值释放与风险并存 在数据驱动的商业模式与日趋严格的个人信息保护法规(如《个人信息保护法》《数据安全法》)双重推动下,企业普遍将“数据脱敏”作为实现数据合规与价值释放的核心手段。对手机…

[python] 使用python设计滤波器

使用python设计滤波器 文章目录 使用python设计滤波器完整滤波器设计代码(未经完整验证,博主还在不断完善中)关键原理与代码对应说明1. 滤波器类型选择2. 阶数估算原理3. 性能分析技术4. 设计参数调整指南 习惯了python后,matlab逐…

mac电脑.sh文件,用来清除git当前分支

#!/bin/bashecho "正在检查Git仓库..." if ! git rev-parse --is-inside-work-tree >/dev/null 2>&1; thenecho "错误:当前目录不是Git仓库!"exit 1 fiecho "警告:这将丢弃所有未提交的更改和本地提交&am…

Bash (Bourne Again SHell)

Unix/Linux 系统中最常用的命令行解释器之一,它是原始 Bourne shell (sh) 的增强版本。以下是 Bash 的详细解释: 1. Bash 基础 1.1 什么是 Bash 一个命令行解释器,用于执行用户输入的命令支持脚本编程,可以编写复杂的自动化任务…

uni-app学习笔记三十五--扩展组件的安装和使用

由于内置组件不能满足日常开发需要,uniapp官方也提供了众多的扩展组件供我们使用。由于不是内置组件,需要安装才能使用。 一、安装扩展插件 安装方法: 1.访问uniapp官方文档组件部分:组件使用的入门教程 | uni-app官网 点击左侧…

AIStor 的模型上下文协议 (MCP) 服务器: 工作原理

在本系列的前几篇博文中,我们讨论了MinIO AIStor 模型上下文协议 (MCP) 服务器的用户级和管理员级功能。在第一篇博文中,我们学习了如何查看存储桶的内容、分析对象并标记它们以便将来处理。在第二篇博文中,我们还学习了如何使用管理员命令以…

Excel 怎么让透视表以正常Excel表格形式显示

目录 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总 1、创建数据透视表 2、设计 》报表布局 》以表格形式显示 3、设计 》分类汇总 》不显示分类汇总

汇编语言深度指南:从基础到字符串操作

基础知识 CPU简介 CPU是计算机的核心,负责: 执行机器指令:解码并执行二进制指令 mov eax, 5 ; 将值5移动到EAX寄存器暂存少量数据:通过内部寄存器快速存取访问存储器:读写内存数据 mov [0x1000], eax ; 将EAX值…