大数据时代,爬虫已经成了获取数据的必不可少的方式,要防止爬虫被封禁,可以考虑以下几个方法:1、遵守网站的爬虫规则:许多网站都有针对爬虫的规则和指南,包括robo
分类:静态代理IP / 阅读:478/ 发表于:2023年07月28日
大数据时代,爬虫已经成了获取数据的必不可少的方式,要防止爬虫被封禁,可以考虑以下几个方法:
1、遵守网站的爬虫规则:许多网站都有针对爬虫的规则和指南,包括robots.txt文件和网站的使用条款。确保遵守这些规则,不要违反网站的爬取限制和频率限制。
2、设置合理的爬取频率:爬虫请求频率过高可能会被网站视为恶意行为,导致被封禁。可以设置适当的爬取延迟和频率,避免给服务器带来过大的负载。
3、使用合法的用户代理标识:将爬虫的User-Agent设置为合法的、能够被网站正常识别的标识,避免被识别为恶意爬虫。
4、避免爬取敏感信息:不要尝试爬取需要登录或者访问受限资源的信息,遵守网站的访问权限控制。
5、多IP轮换:使用多个IP地址进行爬取,并进行IP轮换,避免单个IP地址被封禁。
6、使用代理服务器:使用代理服务器来隐藏真实的爬虫IP地址,增加隐匿性和安全性。
7、处理验证码和反爬机制:一些网站会使用验证码、IP封禁等反爬机制,可以使用自动识别验证码的工具或者采用反反爬策略来应对。
8、监控爬虫行为:定期检查和监控爬取行为,及时发现异常和问题,并作出相应调整。
综上所述,其实真正有效的方式还是使用代理,使用海外代理ip之后可以让爬虫伪装自己的真实 IP,如果使用大量的随机的代理进行爬取,那么网站就不知道是我们的爬虫一直在爬取了,这样就有效地解决了反爬的问题。
那么最重点的问题来了,到底是使用什么样的海外代理ip好?这是一个十分关键的问题。
使用什么代理好呢?这里有两个意思:一个是说用什么类型的海外代理ip?大家都知道海外代理ip仅用途分类就有很多种,另一个指的就是去哪一家海外代理服务提供商那里购买?
下面的划重点!!!首先我们看来来最广泛的两大分类。
静态代理IP:
1、跨境电商运营
由于跨境电商平台的机制,如Amazon、eBay等跨境电商卖家往往需要使用静态代理IP来突破网络限制;或多账号运营时,每个账号使用静态代理IP能够防止账号关联。
2、社交平台养号
如果需要每天都登录Facebook、tiktok、ins之类的社交平台进行养号,使用静态代理IP能够使账号环境更加安全稳定,发帖、更新动态时权重也会更高。
3、广告投放引流
当商家在社交媒体平台上做站外引流广告投放时可以使用静态IP,因为广告投放是长线任务,使用静态代理IP会让账号更加稳定安全,降低账号被封禁的风险。
动态代理IP:
1、爬虫收集资料
网络爬虫在运行时对同一个网页进行高频率的访问会触发反爬虫机制,会被网页标记甚至拉黑。因此需要使用动态IP来模拟不同的真实用户,防止被网页拉黑。
2、秒杀抢购商品
使用多个账号抢购限量商品时,如果用户在相同的IP地址使用多个帐户,会被检测到并有封号的风险,使用动态IP可以满足抢购时多账户使用不同IP的需求。
3、社交平台推广
海外热门的社交平台的多账号推广也离不开动态IP,利用不同IP注册不同的账号互相浏览、点赞、评论等,可以提高账号的互动率,提升账号权重。
当然也有一些代理服务商会提供专门的反爬虫代理:一些代理服务提供商提供专门用于反爬虫的代理,这些代理具有智能化的功能,可以绕过一些常见的反爬虫机制,如验证码、IP封禁等。
可见代理购买,真的还是要精细的挑选服务商
有的海外代理推广力度大,且自称拥有海量ip池,但在客户咨询上都不能解答清楚(例:什么ip适合什么样的场景),更别说提供专门的“反爬虫代理”了!
在海外代理服务商这一块的选择,着实是选起来费劲。
毕竟我们随便搜索海外代理关键词,太多太多厂商品牌,如果是懂行的到还好,一些不懂的小白看了介绍是一头雾水。毕竟很少有服务商会在网站标记出来哪些ip适合数据采集和网页抓取,哪些又适合跨境电商和国际营销?
那么我们到底该如何选择呢?看完接下来代理叔的这一篇文章,想必你心中就有了答案。 首先声明,免费代理,无论是爬虫还是其他的业务,想都不要想!,可用率能超过 5% 代理叔给你跪了,要是导致业务出差错别怪我没提醒。
真正靠谱的代理还是需要花钱买的,毕竟免费的是“最贵的”这个教训大家都知道。
那这么多家到底哪家可用率高?哪家响应速度快?哪家比较稳定?哪家性价比比较高?为此,阳光代理叔对市面上比较流行的多家付费代理针对可用率、爬取速度、爬取稳定性、价格、安全性、请求限制等做了详细的评测,让我们来一起看一下到底哪家更强!
付费的海外代理我选取了阳光代理(sunproxies)、proxy302、IPIDEA、Smartproxy、stormproxies、oxylabs、haiwaiip、roxlabs、netnut、ipipgo、易路代理IP这11家海外代理服务提供商进行了对比评测,购买了他们的动态代理套餐使用同样的网络环境进行了测评,详情如下:
代理商家 | 套餐类型 | 官方网站 |
阳光代理(sunproxies) | 默认版 | |
proxy302 | 默认版 | https://www.proxy302.com/ |
IPIDEA | 默认版 | https://sem.ipidea.net/ |
Smartproxy | 默认版 | https://www.smartproxy.cn/ |
stormproxies | 默认版 | https://www.stormproxies.cn/ |
oxylabs | 默认版 | https://oxylabs.cn/ |
haiwaiip | 默认版 | https://www.haiwaiip.com/ |
roxlabs | 默认版 | https://www.roxlabs.cn/ |
netnut | 默认版 | https://www.netnut.cn/ |
ipipgo | 默认版 | www.ipipgo.com |
易路代理IP | 默认版 | https://www.yilus5.com/ |
本次测评主要分析代理的可用率、响应速度、稳定性、价格、安全性、和使用频率,那么为什么从这6个维度进行测评?代理叔马上揭晓。
可用率 | 海外代理可用率就是提取的这些代理中可以正常使用的比率。简单说就是请求网站失败或者请求超时,那么就代表这个代理失败,是不可用,在这里我的测试样本大小为 300,即提取 300 个代理,看看里面可用的比率到底是多少。 |
响应速度 | 海外代理响应速度对应的即是时间,代理ip请求网站到得到响应耗时究竟多久。时间越短,响应速度越快,这里同样是 300 个样本,当然这里是针对正常可用的代理做统计 |
稳定性 | 海外代理稳定性,顾名思义,第一次的响应快并不代表稳定,因为爬虫时需要的都是大批量代理,稳定才是第一要素,一个代理响应速度特别快,然而下一次请求时间却是第一次的几倍,那爬取效率依然低下 |
价格 | 海外代理价格,无论作为客户是否不在意价格,但性价比是任何产品都绕不开的因素,如果一个代理不论是响应速度还是稳定性都很好,但远超市场价,也要思虑再三。 |
安全性 | 海外代理ip安全性,很多人没有想到安全这一点,只要是互联网业务,安全性必须要考虑,例如代理提取的 API 泄露出去了,被他人大肆使用是谁都不想看到的,代理服务厂商在生产环境得不到保证,建议不要纳入考虑范围。 |
使用频率 | 海外代理的使用频率,基本上很多的代理服务商都会在 API 调用时设置频率限制,这和稳定性一样会影响效率。 |
ip测评准备主机选取 | 海外代理ip测评说明:评测需要在一个网络稳定的条件下进行,因此代理叔选择一台云主机作为测试,这样我们就可以保证一个标准统一的测试环境了。 |
准确性 | 海外代理ip测评说明:ip在产品属性上偏消耗,所以即时取即时测以达到准确性,ip放久了时会影响使用性的,例如我们提取出来了 300 个代理,但是只拿了100个代理测试,那么剩下的200个有效性放置一段时间再测并不能保证它的可用性,所以测试时数量1(请求一次接口获取一个代理)是再准确不过了。 |
时间计算 | 海外代理ip测评说明:时间为发起请求到得到响应的时间。 |
测试链接 | 海外代理ip测评说明:为了排除干扰,需要一个稳定的且没有反爬虫的链接,例如某狗。 |
超时限制 | 海外代理ip测评说明:代理请求超时的时间设置多少好呢?为了筛选较差的海外代理ip服务提供商,那就以一分钟(60s)为例,若60s仍然无响应,直接认定为失效代理。 |
测试数量 | 海外代理ip测评说明:在统计学中,要做测评就不能以少数量,毕竟没有说服力,但是太大呢(每个代理服务商拿1000ip),阳光代理叔也是没有那么大的本钱,所以300ip还说的过去,即每个服务商取300 个代理ip进行测试。 |
嗯,测评过程这边主要说一下测评的代码逻辑,首先测的时候是取一个测一个的,所以这里定义了一个 test_proxy() 方法:
test_url = 'https://www.sogou.com/' timeout = 60 def test_proxy(proxy): try: proxies = { 'https': 'http://' + proxy } start_time = time.time() requests.get(test_url, timeout=timeout, proxies=proxies) end_time = time.time() used_time = end_time - start_time print('Proxy Valid', 'Used Time:', used_time) return True, used_time except (ProxyError, ConnectTimeout, SSLError, ReadTimeout, ConnectionError): print('Proxy Invalid:', proxy) return False, None
这里需要传入一个参数 proxy,代表一个代理,即 IP 加端口组成的代理,然后这里使用了 requests 的 proxies 参数传递给 get() 方法。对于代理无效的检测,这里判断了 | ProxyError, ConnectTimeout, SSLError, ReadTimeout, ConnectionError 这几种异常,如果发生了这些异常统统视为代理无效,返回错误。如果在 timeout 60 秒内得到了响应,
那么就计算其耗费时间并返回。 在主程序里,就是获取 API 然后统计结果了,代码如下:
max = 300 def main(): print('Testing') used_time_list = [] valid_count = 0 total_count = 0 while True: flag, result = get_page(api_url) if flag: proxy = result.strip() if is_proxy(proxy): total_count += 1 print('Testing proxy', proxy) test_flag, test_result = test_proxy(proxy=proxy) if test_flag: valid_count += 1 used_time_list.append(test_result) stats_result(used_time_list, valid_count, total_count) time.sleep(wait) if total_count == max: break
这里加了一些判断,如 is_proxy() 方法判断了获取的是不是符合有效的代理规则,即判断它是不是 IP 加端口的形式,这样可以排除 API 返回一些错误信息的干扰。另外这里设置了 total_count 和 valid_count 变量,只有符合代理规则的代理参与了测试,这样才算一次有效测试,total_count 加一,如果测试可用,那么 valid_count 加一并记录耗费时间。最后调用了 stats_results 方法进行了统计:
经过测评,表格结果:
代理商家 | 套餐类型 | 测试次数 | 有效次数 | 可用率 | 响应时间均值 | 响应时间方差 |
阳光代理(sunproxies) | 默认版 | 300 | 295 | 99.00% | 0.916853 | 0.931989 |
proxy302 | 默认版 | 300 | 282 | 94.40% | 0.68770707 | 1.1477163 |
IPIDEA | 默认版 | 300 | 294 | 98.80% | 1.23994 | 0.891614 |
Smartproxy | 默认版 | 300 | 291 | 97.30% | 0.69301904 | 1.468 |
stormproxies | 默认版 | 300 | 268 | 89.60% | 2.340489 | 1.56444 |
oxylabs | 默认版 | 300 | 277 | 92.1% | 3.592413 | 1.2588468 |
haiwaiip | 默认版 | 300 | 262 | 87.2% | 7.514229 | 0.989289 |
roxlabs | 默认版 | 300 | 293 | 97.6% | 3.77114581 | 1.8263 |
netnut | 默认版 | 300 | 263 | 87.6% | 2.364848 | 2.1496 |
ipipgo | 默认版 | 300 | 244 | 81.3% | 1.255856 | 1.649 |
易路代理IP | 默认版 | 300 | 287 | 95.6% | 1.02023658 | 4.21595875 |
注:
· 表中的响应时间方差越大,代表稳定性越低。
可用率
通过可用率统计,我们可以发现可用率较高的排名为:
级别 | 服务商 |
第一 | 阳光代理(sunproxies) |
第二 | IPIDEA |
第三 | Smartproxy |
第四 | roxlabs |
第五 | 易路代理IP |
第六 | proxy302 |
第七 | oxylabs |
第八 | stormproxies |
第九 | netnut |
第十 | haiwaiip |
第十一 | ipipgo |
响应速度
通过平均响应速度判别,我们可以发现响应速度较快的排名为:
级别 | 服务商 |
第一 | proxy302 |
第二 | Smartproxy |
第三 | 阳光代理(sunproxies) |
第四 | 易路代理IP |
第五 | IPIDEA |
第六 | ipipgo |
第七 | stormproxies |
第八 | netnut |
第九 | oxylabs |
第十 | roxlabs |
第十一 | haiwaiip |
稳定性
通过平均响应速度方差分析,我们可以发现稳定性高的排名为:
级别 | 服务商 |
第一 | IPIDEA |
第二 | 阳光代理(sunproxies) |
第三 | haiwaiip |
第四 | proxy302 |
第五 | oxylabs |
第六 | Smartproxy |
第七 | stormproxies |
第八 | ipipgo |
第九 | roxlabs |
第十 | netnut |
第十一 | 易路代理IP |
价格
我们可以看一下各个套餐的价格:
住宅(动态) | 住宅(静态) | 机房 | 支持国家 | ||
Sunproxies(阳光代理) | https:cn.sunproxies.com/ | 按IP收费:$3.89/IP/月 | 按IP收费:$4.39/IP/月 | 按IP收费:$1.99/IP/月 | 230 |
proxy302 | https://www.proxy302.com/ | 按IP收费:$4.5/IP/月 按流量收费:$5/GB | 按IP收费:$7.99/IP/月 按流量收费:$5/GB | 按IP收费:$3.99/IP/月 按流量收费:$1/GB | 240 |
IPIDEA | https://sem.ipidea.net/ | 按流量收费:$6.3/GB | 按IP收费:$11.2/IP/月 | 按流量收费:$1.1/GB | 140 |
Smartproxy | https://www.smartproxy.cn/ | 按流量收费:$2.1/GB | 按IP收费:$10.9/IP/月 | —— | 250 |
stormproxies | https://www.stormproxies.cn/ | 按流量收费:$1.4/GB 按额度收费:$0.008/IP(短效) | 按IP收费:$7.7/IP/月 | —— | 230 |
oxylabs | https://oxylabs.cn/ | 按流量收费:$3.75/GB | 按IP收费:$4.3/IP/月 | 按流量收费:$0.42/GB 按IP收费:$2.4/IP/月 | 200 |
haiwaiip | https://www.haiwaiip.com/ | 按流量收费:$7.5/GB(国家) 按流量收费:$13/GB(城市) | —— | 按流量收费:$0.9/GB | 195 |
roxlabs | https://www.roxlabs.cn/ | 按流量收费:$1.4/GB 按额度收费:$0.009/IP(短效) | —— | —— | 5 |
netnut | https://www.netnut.cn/ | 按流量收费:$4/GB 按请求收费:$100/M | 按流量收费:$5/GB 按请求收费:$100/M | 按流量收费:$0.5/GB | 156 |
ipipgo | www.ipipgo.com | 按流量收费:$5.7/GB | 按IP收费:$11.2/IP/月 | 按IP收费:$8.7/IP/月 | 200 |
易路代理IP | https://www.yilus5.com/ | 按流量收费:$8.4/GB(国家) 按流量收费:$12/GB(城市) | 按IP收费:$13.8/IP/月 | 按流量收费:$0.84/GB 按IP收费:$4.2/IP/月 | 100 |
安全性
对于安全性,此处主要考虑提取 API 是否有访问验证,使用代理时是否有访问验证,即可以通过设置白名单来控制哪些可以使用。 其中Sunproxies(阳光代理)、proxy302、IPIDEA、oxylabs4家设置了白名单。
调取频率
不同的接口具有不同的 API 调用频率限制,归纳如下:
服务商 | 调取频率限制 |
阳光代理(sunproxies) | 无限制 |
proxy302 | 100 毫秒 |
Smartproxy | 200毫秒 |
IPIDEA | 1秒 |
stormproxies | 无限制 |
oxylabs | 1.2秒 |
haiwaiip | 100毫秒 |
roxlabs | 无限制 |
netnut | 3秒 |
ipipgo | 无限制 |
易路代理IP | 1秒 |
分项了解了各个代理套餐的可用率、响应速度、稳定性、性价比、安全性等内容之后,最后做一下总结:
代理商家 | 套餐类型 | 可用率评价 | 响应速度评价 | 稳定性 | 价格评价 | 安全性 | 推荐指数 |
阳光代理(sunproxies) | 默认版 | 极高 | 极快 | 好 | 平均 | 高 | ★★★★★☆ |
proxy302 | 默认版 | 高 | 极快 | 极好 | 高 | 高 | ★★★★★ |
IPIDEA | 默认版 | 高 | 快 | 好 | 高 | 高 | ★★★★★ |
Smartproxy | 默认版 | 极高 | 极快 | 极好 | 高 | 低 | ★★★★★☆ |
stormproxies | 默认版 | 低 | 快 | 一般 | 低 | 低 | ★★★★☆ |
oxylabs | 默认版 | 高 | 一般 | 一般 | 平均 | 低 | ★★★★☆ |
haiwaiip | 默认版 | 高 | 慢 | 好 | 高 | 低 | ★★★★☆ |
roxlabs | 默认版 | 极高 | 一般 | 一般 | 低 | 低 | ★★★★☆ |
netnut | 默认版 | 高 | 一般 | 一般 | 平均 | 低 | ★★★★☆ |
ipipgo | 默认版 | 高 | 快 | 一般 | 高 | 低 | ★★★★☆ |
易路代理IP | 默认版 | 极高 | 快 | 一般 | 高 | 高 | ★★★★★☆ |
所以在综合来看比较推荐的有:Smartproxy、阳光代理(sunproxies)、易路代理IP、IPIDEA、proxy302,详细的对比结果可以参照表格。 以上便是各家代理的详细对比测评情况,希望此文能够在大家选购代理的时候有所帮助。
灌水不是我的目的!http://3bi.net/post/3737.html/
评论信息
发表评论: