您当前的位置:首页 > 电脑百科 > 程序开发 > 语言 > Python

为什么网站知道我的爬虫使用了代理?

时间:2022-04-01 10:50:51  来源:  作者:Python秘密基地

私信里经常有人问:为什么自己的爬虫明明设置了代理,但一访问网站就能被发现。我总结了几种常见的情况。

实际上,网站要识别你是否使用了代理,并不一定非要什么高深的反爬虫机制,也不需要使用AI识别用户行为。下面这几种情况,要识别代理简直是易如反掌。

为什么网站知道我的爬虫使用了代理?

 

 

你根本没有使用代理

有一些初学者在使用Requests请求网站的时候,是这样写的代码:

import requests

resp = requests.get('https://httpbin.org/ip').text

print('不使用代理:', resp)

resp = requests.get('https://httpbin.org/ip', proxies={'http': 'http://IP:port'}).text
print('使用代理:', resp)

运行效果如下图所示:

为什么网站知道我的爬虫使用了代理?

 

为什么使用了代理以后,IP没有变呢?这是很多刚刚使用Requests的同学常常犯的错误。

因为你根本没有给https网站使用代理,你的代理只会对http网站生效。要对https网站生效,需要给它指定代理:

resp = requests.get('https://httpbin.org/ip', proxies={'http': 'http://IP:port', 'https': 'http://IP:port'}).text

P.S.: 注意看上面的代码,给https网址设置代理的时候,key是https,但值依然是http://开头。对一些代理供应商来说,如果你把这里设置成了https://开头,就会报错。

 

你的代理IP是服务器IP

有很多代理供应商,他们批量采购云服务器来搭建代理服务。例如国内的供应商会采购阿里云、腾讯云、华为云的服务器来搭建代理。海外的供应商会采购AWS或者google云服务器。

如果你在云服务器上跑过不加代理的爬虫,你会发现,有时候一个爬虫,不加代理,在自己电脑上跑一点问题都没有,但是在云服务器上一跑就会被识别。这是因为云服务器的IP地址范围跟家用宽带是不一样的。

像AWS和Google云,他们的云服务器IP范围是公开的,只要网站提前把来自这个范围的所有请求全部禁掉,那么从AWS、Google云服务器上面发起的请求直接就会被当做爬虫请求。因此搭建在上面的代理服务自然就不会生效了。

国内的云服务供应商的服务器IP地址是否公布过我不太清楚,但他们的IP范围肯定是跟家用IP不一样的。

网址遇到来自这些可疑IP范围的请求时,虽然不一定完全封禁,但是弹一个验证码出来测一测,还是可以挡住很多爬虫。

遇到这种情况,爬虫只有设法采购一些使用家用宽带搭建代理服务的供应商,才能解决问题。但这种代理价格肯定会翻好几倍。

 

 

你的代理IP不是高匿代理

代理IP有三种常见的类型,透明代理,匿名代理和高匿代理。

使用透明代理的时候,网站可以同时看到代理IP和你的真实IP。用了等于白用。

使用匿名代理的时候,网站看不到你的真实IP,但是在请求里面有一个特征,可以告诉网站,你正在使用代理访问。

而只有真正的高匿代理,才能把你的爬虫请求隐藏起来。

有一些同学可能会从网上搜索免费的代理IP来使用。但这里面很多代理并不是高匿代理。肯定会被发现。

为什么网站知道我的爬虫使用了代理?

 

 

 

服务器供应商的IP池被污染

有些人的爬虫写得非常垃圾,自以为有代理就无所畏惧,爬虫请求漏掉百出,网站即使不检查IP频率,也可以从其它特征知道这是爬虫请求,于是网站就会连带着这个代理IP一起封掉。

而偏偏这种垃圾爬虫的请求速度又极快。哪怕代理供应商的IP池中有几百万个IP,也会很快被这些垃圾爬虫全部害死。

国内头部网站每天都会被数以千万计的爬虫请求访问,而主流的代理供应商就那么几家。

如果很多垃圾爬虫都选中了同一家供应商,而他们的代理池更新又不及时。那么你使用了这家供应商的代理IP,自然一来就会被发现。

 

 

代理不支持HTTP/2

有一些网站需要使用HTTP/2请求。在Python/ target=_blank class=infotextkey>Python里面,已经有不少HTTP客户端库支持发起HTTP/2的请求了,例如httpx。但是,现在很少有代理供应商能提供支持HTTP/2的代理,因为它搭建起来比较麻烦。

于是,当你使用了支持HTTP/2的客户端,通过一个HTTP/1.1的代理IP访问一个HTTP/2的网站的时候,网站并不能正常返回内容。

 

 

总结

网站要检测爬虫有非常多的方法,要检测一个请求是不是使用了代理来发起,也有很多种方法。而且这些方法并不需要什么高深的技术,一个初级工程师都能写出来。

那些自以为给爬虫加了代理就可随便爬网站的人,你们不仅害了自己,还害了别的爬虫。

原文链接:

https://mp.weixin.qq.com/s/8umBERSnaw0AdwodQkElUg



Tags:爬虫   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
360 AI搜索App上线:基于“爬虫”抓取和用户提交数据
IT之家 1 月 29 日消息,360 AI 搜索 App 上线各大手机应用商城,当前版本为 1.0.0,安装包大小 27.4M,暂时没有收费选项。IT之家从官方描述获悉,当用户在 360 AI 搜索中输入任何问...【详细内容】
2024-01-30  Search: 爬虫  点击:(60)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  Search: 爬虫  点击:(62)  评论:(0)  加入收藏
python 爬虫常用第三方库推荐
Python 是一种非常适合进行网络爬虫开发的语言,拥有丰富的第三方库和工具,可以方便快捷地实现各种爬虫需求。下面是好学编程总结的 Python 爬虫开发的一些常用步骤:1. 确定目标...【详细内容】
2023-12-29  Search: 爬虫  点击:(92)  评论:(0)  加入收藏
搜索引擎排名优化是针对蜘蛛爬虫还是对用户?
搜索引擎排名优化,这是一个让无数网站管理员、营销人员和创业者们既爱又恨的话题。有人认为它是提高网站知名度的关键,也有人觉得它不过是个劳神费力的无底洞。那么,这个看似神...【详细内容】
2023-12-28  Search: 爬虫  点击:(89)  评论:(0)  加入收藏
蜘蛛爬网络数据的用处•爬虫目的是什么
1.可以挖掘丰富资源:使用Baidu蜘蛛,可以挖掘互联网的无限资源。通过爬取各类网站,获得大量的比如新闻、文献、视频等等数据。如我们常常需要查找大量的文献资料来支撑我们的研...【详细内容】
2023-12-26  Search: 爬虫  点击:(67)  评论:(0)  加入收藏
哪些网站爬虫有兴趣?怎样吸引到蜘蛛爬虫?
怎样更好地吸引百度蜘蛛爬取网站?想让蜘蛛抓取网站内容,想要吸引蜘蛛的青睐,需要很多技巧,下面带大家一起来了解一下。1.新站提交文章链接网站是新站的话,百度蜘蛛自然是不太感兴...【详细内容】
2023-12-18  Search: 爬虫  点击:(101)  评论:(0)  加入收藏
学透这10个Python爬虫框架,轻松爬取一切数据
什么是Python爬虫框架?就像超市里有卖半成品的菜一样,Python爬虫工具也有半成品,就是Python爬虫框架。就是把一些常见的爬虫功能的代码先写好,然后留下一些借口。当我们在做不同...【详细内容】
2023-12-08  Search: 爬虫  点击:(236)  评论:(0)  加入收藏
移动端Python爬虫实战
移动端Python爬虫实战Python爬虫是指利用Python编程语言编写的程序,用于自动从互联网上获取信息。通过模拟人的行为,Python爬虫可以访问网页、抓取数据,并将数据保存到本地或...【详细内容】
2023-11-25  Search: 爬虫  点击:(224)  评论:(0)  加入收藏
Python爬虫神器:Beautiful Soup指南,轻松解析网页数据!
Beautiful Soup(简称BS4)是一种强大而灵活的HTML和XML解析库,广泛用于Python爬虫和数据采集中。这篇文章介绍 Beautiful Soup的功能和用法,并提供示例代码,帮助你更好地理解和应...【详细内容】
2023-10-22  Search: 爬虫  点击:(117)  评论:(0)  加入收藏
Python爬虫常用的库,这些你都用过吗?
在信息时代,数据是无处不在的宝藏。从网页内容、社交媒体帖子到在线商店的产品信息,互联网上存在着大量的数据等待被收集和分析。Python爬虫是一种强大的工具,用于从互联网上获...【详细内容】
2023-10-21  Search: 爬虫  点击:(105)  评论:(0)  加入收藏
▌简易百科推荐
一篇文章教会你使用Python中三种简单的函数
所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。一、函数简介所谓函数,就是指:把某些特定功能的代码组成为一个整体,这个整体就叫做函数。二、函数定义...【详细内容】
2024-04-11  Go语言进阶学习  微信公众号  Tags:Python   点击:(10)  评论:(0)  加入收藏
一篇文章带你了解Python的分布式进程接口
在Thread和Process中,应当优选Process,因为Process更稳定,而且,Process可以分布到多台机器上,而Thread最多只能分布到同一台机器的多个CPU上。一、前言在Thread和Process中,应当优...【详细内容】
2024-04-11  Go语言进阶学习    Tags:Python   点击:(8)  评论:(0)  加入收藏
Python 可视化:Plotly 库使用基础
当使用 Plotly 进行数据可视化时,我们可以通过以下示例展示多种绘图方法,每个示例都会有详细的注释和说明。1.创建折线图import plotly.graph_objects as go# 示例1: 创建简单...【详细内容】
2024-04-01  Python技术    Tags:Python   点击:(13)  评论:(0)  加入收藏
Python 办公神器:教你使用 Python 批量制作 PPT
介绍本文将介绍如何使用openpyxl和pptx库来批量制作PPT奖状。本文假设你已经安装了python和这两个库。本文的场景是:一名基层人员,要给一次比赛活动获奖的500名选手制作奖状,并...【详细内容】
2024-03-26  Python技术  微信公众号  Tags:Python   点击:(21)  评论:(0)  加入收藏
Python实现工厂模式、抽象工厂,单例模式
工厂模式是一种常见的设计模式,它可以帮助我们创建对象的过程更加灵活和可扩展。在Python中,我们可以使用函数和类来实现工厂模式。一、Python中实现工厂模式工厂模式是一种常...【详细内容】
2024-03-07  Python都知道  微信公众号  Tags:Python   点击:(36)  评论:(0)  加入收藏
不可不学的Python技巧:字典推导式使用全攻略
Python的字典推导式是一种优雅而强大的工具,用于创建字典(dict)。这种方法不仅代码更加简洁,而且执行效率高。无论你是Python新手还是有经验的开发者,掌握字典推导式都将是你技能...【详细内容】
2024-02-22  子午Python  微信公众号  Tags:Python技巧   点击:(41)  评论:(0)  加入收藏
如何进行Python代码的代码重构和优化?
Python是一种高级编程语言,它具有简洁、易于理解和易于维护的特点。然而,代码重构和优化对于保持代码质量和性能至关重要。什么是代码重构?代码重构是指在不改变代码外部行为的...【详细内容】
2024-02-22  编程技术汇    Tags:Python代码   点击:(42)  评论:(0)  加入收藏
Python开发者必备的八个PyCharm插件
在编写代码的过程中,括号几乎无处不在,以至于有时我们会拼命辨别哪个闭合括号与哪个开头的括号相匹配。这款插件能帮助解决这个众所周知的问题。前言在PyCharm中浏览插件列表...【详细内容】
2024-01-26  Python学研大本营  微信公众号  Tags:PyCharm插件   点击:(91)  评论:(0)  加入收藏
Python的Graphlib库,再也不用手敲图结构了
Python中的graphlib库是一个功能强大且易于使用的工具。graphlib提供了许多功能,可以帮助您创建、操作和分析图形对象。本文将介绍graphlib库的主要用法,并提供一些示例代码和...【详细内容】
2024-01-26  科学随想录  微信公众号  Tags:Graphlib库   点击:(92)  评论:(0)  加入收藏
Python分布式爬虫打造搜索引擎
简单分布式爬虫结构主从模式是指由一台主机作为控制节点负责所有运行网络爬虫的主机进行管理,爬虫只需要从控制节点那里接收任务,并把新生成任务提交给控制节点就可以了,在这个...【详细内容】
2024-01-25  大雷家吃饭    Tags:Python   点击:(62)  评论:(0)  加入收藏
站内最新
站内热门
站内头条