首页 > 其他分享 >爬虫ip经常被封,该如何解决?

爬虫ip经常被封,该如何解决?

时间:2023-01-13 12:03:53浏览次数:41  
标签:HTTP ip 经常 代理 Agent 爬虫 访问 品易 IP

经常看到uu们分享,自己向厂商购买了HTTP代理,但是还是经常被封,导致自己无法按时完成作业,项目无法完成,那该如何解决这一问题呢?

只要思想不滑坡,办法总比困难多,我们可以尝试以下方法:

​1.User-Agent伪装和轮换

需要注意的是,不同浏览器的不同版本都有不同的User-Agent,所以,我们可以准备多一些的User-Agent,把它们都放在一个列表中,要使用的时候,每次随机选一个,这样我们就能达到每次请求的时候使用的都是不同的User-Agent,也可以有效防止反爬。

2.优化爬虫策略

首先,我们要看此前被封的时候返回的是什么HTTP码,以此来优化我们的爬虫策略,​

HTTP返回码

说明

302

出现302一般有2种情况

  • 客户端IP为海外IP,服务器会重定向到预警页面:
  • 客户端访问的目标站被拦截,比如银行网站、邮箱、社交软件等,服务器返回重定向到预警页面;

400

客户端错误。客户端协议无法被识别

407

授权错误,出现407一般有3种情况

  • 白名单模式,则可能是用户有多出口IP,没有全部添加到白名单;
  • 账离模式,可能是账密信息错误
  • 共享P产品中可能是IP已过期

408

目标站不可达。服务端与目标站建连失败,服务端不可达或者当前HTTP代理掉线

429

请求数超出。隧道产品中用户QPS大于购买的请求数;独享和共享产品中,用户当前的代理tcp连接超出限制数

431

请求头过大。出现在http代理中,header头部信息过多导致

500

服务器内部错误

503

当前代理协议不支持,比如ss代理协议

508

代理目标站为HTTP代理地址导致死循环。一般不出现


​现在的互联网,很多网站都是设置了反爬机制,如果我们一直使用同一个HTTP代理短期内一直访问该网站,是非常容易触发反爬机制,限制这种访问;或者因为我们的爬虫抓取的速度过快,网站方能很轻松判别我们不是真实用户……

我们需要做的是:

降低抓取频率,重新设置访问时间间隔

我们需要把自己伪装成一个真实的用户在访问,降低访问的频率及频次,把访问的间隔时间设置成或长或短,即:随机数。


3.优质的HTTP代理

尽量不要使用免费的HTTP代理,因为免费的HTTP代理反而是最贵的(成本),此类HTTP代理往往是匿名级别是透明的,网站能轻松识别到我们的真实IP。所以需要使用高匿的HTTP代理,而向厂商购买,大概率买的都是高匿名的,会比较优质。

整理了一份市面上的动态短效代理表格,给有缘人:

分类

代表厂商

白名单数

基础套餐


(元/月)

平均IP单价


(元/IP)

按时计费-以IP通道为增量

青果网络

256

29

0.0006

小象代理

5

109

0.0050

按时计费-以每日IP量为增量

巨量代理

5

155

0.0049

豌豆代理

5

300

0.0025

讯代理

1

210

0.0583

品易代理

20

120

0.0070

芝麻代理

5

360

0.0182

按量计费

青果网络

256

30

0.0030

豌豆代理

5

200

0.0200

小象代理

5

100

0.0100

巨量代理

5

75

0.0140

品易代理

20

100

0.0100

芝麻代理

5

420

0.0420


总的来说,从单价来看,按时大概是这个排名:

青果网络<豌豆代理<巨量代理<小象代理<讯代理<品易代理<芝麻代理


按量:

青果网络<小象代理=品易代理<巨量代理<安慰你都代理<芝麻代理


当然,最重要除了成本调控,还有一个就是效果,毕竟也不是大冤种,无论花多少钱,都是想要看到效果的。

索性我是做过了第一家的测试:

爬虫ip经常被封,该如何解决?_IP

总体而言还不错。

标签:HTTP,ip,经常,代理,Agent,爬虫,访问,品易,IP
From: https://blog.51cto.com/u_15889524/6005876

相关文章

  • 实测 | Apipost和Apifox哪个更好用?
    Apipost和Apifox是国内做的比较好也比较出名的接口调试工具,有不少人都在问这两个工具有什么区别?恰好两个工具我都比较深度的使用过,从初学者到现在也算比较精通一些了,今天就......
  • JavaScript学习笔记—循环
    JS三种循环语句while语句do-while语句for语句通常编写一个循环,需要有三个条件:(1)初始化表达式(2)条件表达式(3)更新表达式1.while循环语法while(condition){......
  • 在 NGINX 中根据用户真实 IP 进行限制
    需求需要根据用户的真实IP进行限制,但是NGINX前边还有个F5,导致deny指令不生效.阻止用户的真实IP不是192.168.14.*和192.168.15.*的访问请求.实现最简单......
  • 在 NGINX 中根据用户真实 IP 进行限制
    需求需要根据用户的真实IP进行限制,但是NGINX前边还有个F5,导致deny指令不生效.阻止用户的真实IP不是192.168.14.*和192.168.15.*的访问请求.实现最简......
  • 网络小爬虫实战案例
    爬虫总体上分为四个主要步骤:1、明确目标,需要做的从哪个途径或者哪个范围内网页搜索。2、爬,将获取到的网站内容全部爬下来。3、取,对数据分析去掉没用的数据。4、处理数据......
  • 多线程并发爬虫教程示例
    爬虫总体上分为四个主要步骤:1、明确目标,需要做的从哪个途径或者哪个范围内网站搜索。2、爬,将获取到的网站内容全部爬下来。3、取,对数据分析去掉没用的数据。4、处理数据......
  • 查看 内网所有ip
    首先看你的主机ip,ifconfigwlp2s0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500inet192.168.3.7netmask255.255.255.0broadcast192.168.3.255......
  • JavaScript 并发模型
    JavaScript并发模型JavaScript是一种单线程语言,这意味着它只有一个执行线程。这意味着,当JavaScript代码正在运行时,它会阻塞其他所有代码的执行。这种模型称为单线程模型......
  • 【Python爬虫项目实战】Python爬虫豆瓣Top250电影短评数据保存本地
    前言今天给大家介绍的是Python爬虫豆瓣Top250电影短评数据保存本地,在这里给需要的小伙伴们帮助,并且给出一点小心得。开发工具Python版本:3.6相关模块:requests模块par......
  • 来自StateOfJS调查:2022年JavaScript生态圈趋势报告(前端早读课)
    原文我这里记录些觉得有趣的。Promise.allSettled()完成所有输入的方法,nomatterwhat,返回对应的状态和值/原因,这对想知道所有返回状态的业务很好用;使用async/await没法......