《代理选择与反爬虫策略探究:如何优化网络爬虫效率与稳定性》
代理IP如何选以及常见反爬策略
为什么需要代理?
因为有的网站会封IP,用户如果没有登录,那IP就是身份标识,如果网站发现用户行为异常就非常可能封IP
什么是代理IP
就是让一个人帮你转交请求,帮你转交的人对面不熟,也就难以发现频繁请求的是你
但是要注意我们只能使用高匿代理,透明代理(转交请求同时告诉是帮谁转交的)什么的是不能用的
如何衡量代理
速度:加代理之后3秒钟能相应是优秀,5秒钟之内能相应是能用的
安全:用来路不明的代理有信息安全风险
价格:性价比需要考虑
请求间隔:有的接口有请求间隔限制,尤其是按时收费的这种,也要考虑
稳定性:失效时间人为设置有长时间的和短时间的,短的1到3分钟,长的几天的都有,越长的越贵,我们用短的就行
比较常用的有芝麻代理,小象代理,快代理,站大爷等等
爬虫选择哪种代理
- 高匿代理:需要代理IP池,否则太费代理,太烧钱
- 隧道代理
- 短效版
- 动态版:以IP生成cookie登录抓取数据 不能满足(IP存活时间短)
- 代理客户端:贵,但平均每隔代理几秒一换,比较快
- 优点:
- 时间恰当,以IP生成cookie登录抓取数据 也能满足
- 优点:
反爬策略
-
封禁IP类
-
阈值:
- 打比方,一分钟60次,第一次封禁2分钟,然后策略改为一分钟45次
- 打比方,一分钟60次,第二天访问同样的内容,则策略改为一分钟45次(增量爬虫,需每天爬取进行数据更新)
总结:所以有的代理IP可以复活,代理IP池很有必要(后续会发布)
-
-
蜜罐陷阱:网页有正常用户不可访问的链接,爬虫获取并访问此链接将进入无限循环,直到程序崩溃
-
token加密验签
-
检测环境变量:selenium可以检测环境变量,requests访问同样也可以检测环境变量
爬虫策略
- 程序模拟抓
- 可能涉及的问题
- token加密验签
- 封禁IP
- 检测环境变量(不常见)
- 蜜罐陷阱(不常见)
- 可能涉及的问题
- selenium抓
- 可能涉及的问题
- 封禁IP
- 检测环境变量(可以消除指纹)
- 可能涉及的问题
- selenium被未知手段封禁,山穷水尽:ODR识别(windows鼠标模拟操作、windows鼠标模拟切换IP、windows鼠标模拟访问数据截图、ODR识别获取数据)
- 弊端:
- ODR识别不准,需要进行模型训练
- 慢,识别七八秒钟
- 适用场景:
- 适用于只用获取一次数据的项目,不适合增量爬虫
- 弊端:
爬虫注意
- 不要过于追求爬取速度,速度过快对网站有影响,网站的反爬措施就会更新,对自己没有好处,因为增量爬虫(项目需要维护),不要多进程加协程,一般多进程或者协程即可
更多精致内容

相关文章:
《代理选择与反爬虫策略探究:如何优化网络爬虫效率与稳定性》
代理IP如何选以及常见反爬策略 为什么需要代理? 因为有的网站会封IP,用户如果没有登录,那IP就是身份标识,如果网站发现用户行为异常就非常可能封IP 什么是代理IP 就是让一个人帮你转交请求,帮你转交的人对面不熟&a…...
Kotlin Flow 防抖 节流
防抖和节流是针对响应跟不上触发频率这类问题的两种解决方案。 一:防抖(debounce)的概念: 防抖是指当持续触发事件时,一定时间段内没有再触发事件,事件处理函数才会执行一次, 如果设定时间到来之前&#x…...
Android Studio下载与安装
Android Studio下载与安装_android studio下载安装-CSDN博客...
【LC刷题】DAY24:122 55 45 1005
122. 买卖股票的最佳时机 II class Solution { public:int maxProfit(vector<int>& prices) {int result 0;for(int i 1; i < prices.size(); i ){result max(prices[i] - prices[ i - 1], 0);}return result;} };55. 跳跃游戏 link class Solution { public…...
从零开始的python学习生活2
接上封装 class Phone:__volt0.5def __keepsinglecore(self):print("让cpu以单核运行")def if5G(self):if self.__volt>1:print("5G通话已开启")else:self.__keepsinglecore()print("电量不足,无法使用5G通话,已经设置为单…...
【并发编程】进程 线程 协程
进程(Process)、线程(Thread)和协程(Coroutine)构成了计算机科学中实现任务并发执行的三种核心抽象机制。通常,为了提高程序的执行效率,开发者会根据应用场景和性能需求,…...
Vue的生命周期函数有哪些?详细说明
Vue.js 的生命周期函数包括以下几个阶段,每个阶段都有相应的钩子函数可以用来在特定时机执行自定义的逻辑。这些生命周期钩子函数使得我们可以在组件的不同阶段进行操作,从而管理组件的状态和行为。 1. beforeCreate: - 描述:…...
大语言模型应用--AI工程化落地
文章目录 大语言模型概述什么是大语言模型什么是机器学习什么是深度学习 理解大语言模型历史沿革关键 AIGC系统AI工程化项目的落地落地的方法Prompt工程(第一阶段)RAG检索(第二阶段)训练特定功能模型(第三阶段…...
我会什么开发技能
java我会什么? 一、并发编程 1、并发编程:jdk中的courren包只能够类实现(seamplore,CountDownLaunch,Pharse,CycliBarrier,CompletableFuture),AQS的原理,线…...
Run LoongArch64 Alpine VM on x86_64
一、Build from source(build on x86_64) Obtain the latest libvirt, virt-manager, and qemu source code, compile and install them. 1.1 Build libvirt from source sudo apt-get update sudo apt-get install augeas-tools bash-completion debhelper-compat dh-apparm…...
4层负载均衡和7层负载均衡
四层负载均衡(Layer 4 Load Balancing)指的是在网络传输层(TCP/IP模型中的第四层)进行负载均衡的技术。四层负载均衡通常使用IP地址、端口号和协议等信息来将网络流量分配到多个服务器上。它主要关心网络层的信息,不涉…...
前端Vue组件化实践:打造仿京东天猫商品属性选择器组件
在前端开发领域,随着业务需求的日益复杂和技术的不断进步,传统的整体式应用开发模式已逐渐显得捉襟见肘。面对日益庞大的系统,每次微小的功能修改或增加都可能导致整个逻辑结构的重构,形成牵一发而动全身的困境。为了解决这一问题…...
智慧城市3d数据可视化系统提升信息汇报的时效和精准度
在信息大爆炸的时代,数据的力量无可估量。而如何将这些数据以直观、高效的方式呈现出来,成为了一个亟待解决的问题。为此,我们推出了全新的3D可视化数据大屏系统,让数据“跃然屏上”,助力您洞察先机,决胜千…...
Git 详解(原理、使用)
git 快速上手请看这篇博客 Git 快速上手 1. 什么是 Git Git 是目前最主流的一个版本控制器,并且是分布式版本控制系统,可以控制电脑上所有格式的文档 版本控制器:记录每次修改以及版本迭代的管理系统 对于文本文件,可以记录每次…...
android11为开机动画添加铃声(语音)
一、碰到的问题 1、第一次开机无铃声 2、开机时铃声和动画不同步,开头的铃声会丢失 3、开机时铃声/动画不能完全播放完 二、解决 以下为添加的patch /开机铃声不同步,语音第一段无声 diff --git a/media/libmediaplayerservice/MediaPlayerService…...
使用 Akshare 下载国内的期货(主力连续)、股票和指数的历史行情数据
本文介绍如何使用 akshare 下载国内期货、股票和指数的历史行情数据。 Akshare 是一个丰富的金融数据查询的 Python 库,提供了大量的金融数据接口。本文将详细介绍如何使用 Akshare 下载期货、股票和指数数据,并提供完整的代码示例,以求大家…...
【React】Google 账号之个性化一键登录按钮功能
“使用 Google 帐号登录”功能可快速管理网站上的用户身份验证。用户登录 Google 账号、表示同意,并安全地与平台共享其个人基础资料信息。 官方文档:链接 一、获取 Google API 客户端 ID 打开 Google API 控制台 中的凭据页面 创建或选择 Google API 项…...
MySQL已经连接对应数据库,但mapper中表名仍报错
如图所示,已经连接对应数据库但还要在其中选择,表多了一个个选会很麻烦 此时找到下图界面 选中对应数据库应用,项目中所有mapper就能找到对应表啦...
CentOS 7:停止更新后如何下载软件?
引言 CentOS 7 是一个广受欢迎的 Linux 发行版,它为企业和开发者提供了一个稳定、安全、且免费的操作系统环境。然而,随着时间的推移,CentOS 7 的官方支持已经进入了维护阶段,这意味着它将不再收到常规的更新和新功能,…...
MySQL GROUP_CONCAT 函数详解与实战应用
提示:在需要将多个值组合成一个列表时,GROUP_CONCAT() 函数为 MySQL 提供了一种强大的方式来处理数据 文章目录 前言什么是 GROUP_CONCAT()基本语法 示例使用 GROUP_CONCAT()去除重复值排序结果 前言 提示:这里可以添加本文要记录的大概内容…...
AutoCAD字体管理终极指南:如何彻底解决字体缺失问题
AutoCAD字体管理终极指南:如何彻底解决字体缺失问题 【免费下载链接】FontCenter AutoCAD自动管理字体插件 项目地址: https://gitcode.com/gh_mirrors/fo/FontCenter 还在为AutoCAD字体缺失问题而烦恼吗?FontCenter是您的专业字体管理解决方案&a…...
百度网盘直链解析工具:告别龟速下载的技术实现方案
百度网盘直链解析工具:告别龟速下载的技术实现方案 【免费下载链接】baidu-wangpan-parse 获取百度网盘分享文件的下载地址 项目地址: https://gitcode.com/gh_mirrors/ba/baidu-wangpan-parse 在数字资源分享领域,百度网盘凭借其庞大的用户基础和…...
UE5 VR开发避坑实录:从Pico串流到圆盘位移,我踩过的那些‘雷’
UE5 VR开发实战避坑指南:从Pico串流到圆盘位移的深度解析 第一次打开虚幻引擎5的VR模板时,那种兴奋感至今记忆犹新。但很快,现实就给了我一记重拳——Pico设备死活连不上开发机,项目莫名其妙闪退,圆盘位移功能在头显里…...
硬件知识 allegro16.6 3D 模型导入与其问题笔记
1. 嘉立创获取3D 模型(注意:网页版不行,需要现在专业版) 2. freecad 去去除 PCB 的封装。(这个过程可能额会导致 出现一个文件里面有两个相同的元器件,需要删掉一个,自己检查) 3. …...
电动汽车高压系统狭窄空间高精度电流电压测量方案解析
1. 项目概述:当高压测量遇上“螺蛳壳里做道场”在电动汽车的研发测试领域,尤其是实车道路测试阶段,有一个场景让很多工程师头疼不已:如何在发动机舱、底盘或电池包附近那些错综复杂、空间逼仄的线束通道里,精准地测量高…...
从靶场到实战:用Vulhub在Docker里一键复现Struts2全系列漏洞(S2-001到S2-053)
从靶场到实战:用Vulhub在Docker里一键复现Struts2全系列漏洞 在安全研究领域,能够快速搭建可复现的漏洞环境是每个从业者的基本功。传统方式需要手动配置Java环境、下载特定版本的Struts2框架、部署Web服务器,整个过程耗时费力且容易出错。而…...
DeepSeek企业级部署GPU清单(2024Q3权威更新):仅3款消费级卡达标,87%私有云环境需重构PCIe拓扑
更多请点击: https://intelliparadigm.com 第一章:DeepSeek企业级GPU资源需求的演进逻辑与基准定义 随着DeepSeek系列大模型从开源轻量级版本(如DeepSeek-Coder-1.3B)向千亿参数级企业级推理与微调平台(如DeepSeek-VL…...
APM32F407移植uC/OS-III实战:从源码到多任务运行全解析
1. 项目概述与核心价值最近在捣鼓一块APM32F407的开发板,想给它跑个实时操作系统,选来选去,最终决定上手uC/OS-III。对于很多从单片机裸机编程转向RTOS的工程师来说,这个选择很典型:uC/OS-III源码开放、结构清晰、文档…...
【物联网专业】案例9_2:控制数码管(定时器中断)
文章目录0 文章介绍1 仿真图2 效果图3 不完整代码4 思考题0 文章介绍 对应定时器/计数器案例目标的实现 用计数器中断0(P3^4)控制数码管段选 P1^6)控制数码位选 1 仿真图 2 效果图 3 不完整代码 复制该代码,其中有7个补充点&#…...
PSIM与ModelSim的VHDL联合仿真:数字电源控制算法验证利器
1. 项目概述:为什么要在PSIM里搞VHDL联合仿真?做电源硬件或者电力电子控制的朋友,肯定对PSIM不陌生。它是个专门搞电力电子和电机驱动仿真的利器,开关器件模型准,仿真速度快,画起主功率拓扑来那叫一个顺手。…...
