Chinaunix首页 | 论坛 | 博客
  • 博客访问: 28003
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 390
  • 用 户 组: 普通用户
  • 注册时间: 2022-12-14 16:49
文章分类

全部博文(38)

文章存档

2024年(4)

2023年(28)

2022年(6)

我的朋友

分类: Python/Ruby

2023-01-13 11:50:33

经常看到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代理反而是{BANNED}最佳贵的(成本),此类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


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

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

按量:

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


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

索性我是做过了{BANNED}中国第一家的测试:


总体而言还不错。


阅读(444) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~