网络抓取工具面临的一个常见问题是在抓取网站时被网站阻止。有许多技术可以防止被阻止,比如: 旋转
IP地址
、 使用代理、 旋转和欺骗用户代理、 使用无头浏览器、 降低爬行率等等。
使用代理和旋转IP地址以及旋转用户代理可以帮助您使刮刀超过大多数防刮措施,并防止被检测为刮刀。
在抓取过程中旋转IP地址的概念很简单 - 您可以让网站查看您不是一个“僵尸”或访问该网站的人,而是从多个位置访问该网站的多个“真实”用户。如果你做得对,那么被阻挡的可能性很小。
在这篇新闻中,我们将向您展示如何使用代理将您的请求发送到网站,然后我们将向您展示如何通过多个IP地址或代理发送这些请求。
如何使用请求通过Python 3中的代理发送请求
如果您使用的是Python-Requests,则可以通过配置proxies参数来通过代理发送请求。例如 :
我们将展示如何通过免费代理发送实际请求。
我们要找个
代理服务器
有许多网站致力于在互联网上提供免费代理。网站是
www.shenjidaili.com
。让我们去那里选择支持https的代理(因为我们将在https网站上测试这个)。
注意:
测试时,此代理可能不起作用。如果它不起作用,您应该从网站上选择另一个代理。
现在让我们向HTTPBin的IP端点发出请求,并测试请求是否通过代理
您可以看到请求通过代理。让我们通过IP地址池发送请求。
通过Python 3中的代理池旋转请求
我们将从中收集一些活动代理的列表
www.shenjidaili.com
。如果您有权访问它们,也可以使用私有代理。
您可以通过手动复制和粘贴来创建此列表,或使用刮刀自动执行此操作(如果您不希望每次删除代理时都经历复制和粘贴的麻烦)。您可以编写脚本来获取所需的所有代理,并在每次初始化Web scraper时动态构建此列表。获得要轮换的
代理IP
列表后,其余部分就很容易了。
我们编写了一些代码来通过抓取自动获取IP。(当网站更新其结构时,此代码可能会更改)
功能 get_proxies 将返回一组代理字符串,可以作为代理配置传递给请求对象。
现在我们在变量中有
代理IP地址
列表proxies,我们将继续使用循环方法旋转它。
好的 - 它奏效了。请求#5有一个连接错误可能是因为我们抓取的免费代理超载了用户试图获取其代理流量。以下是完成此操作的完整代码。
5使用代理和转动IP地址时要记住的事项
以下是您应该记住的一些提示:
1.避免使用序列中的代理IP地址
如果请求来自连续或属于相同范围的IP地址,即使是最简单的防刮插件也可以检测到您是刮的:
64.233.160.0
64.233.160.1
64.233.160.2
64.233.160.3
有些网站甚至阻止像AWS这样的整个提供商,甚至阻止了整个国家。
2.如果您使用免费代理 - 自动化
免费代理很快就会消亡,大部分时间都会在几天或几小时内消失,并且会在抓取甚至完成之前到期。为了防止破坏您的抓取工具,请编写一些代码,这些代码会自动获取并刷新您用于使用工作IP地址进行抓取的代理列表。这将为您节省大量时间和挫折。
3.如果您使用的是神鸡代理(或者即使您支付代理费用),请尽可能使用神鸡代理
所有代理都不一样。互联网上主要有三种代理类型。
透明代理 -
透明代理是位于您的计算机和Internet之间的服务器,可以在不修改请求和响应的情况下重定向您的请求和响应。它在HTTP_X_FORWARDED_FOR标头中发送您的
真实IP
地址,这意味着一个网站不仅会确定您的REMOTE_ADDR,还会检查仍然知道您的真实IP地址的特定代理标头。还会发送HTTP_VIA标头,表明您正在使用代理服务器。
匿名代理 -
匿名代理不会在HTTP_X_FORWARDED_FOR头发送你的真实IP地址,相反,它提交了代理服务器的IP地址,或者它会仅仅是空白。HTTP_VIA标头与透明代理一起发送,这将显示您正在使用代理服务器。匿名代理服务器不再告诉网站您的真实IP地址。这可以帮助您保持互联网上的隐私。该网站仍然可以看到您正在使用代理服务器,但最终,只要代理服务器没有透露您的真实IP地址,它就没关系。如果有人真的想限制页面访问,则会检测并阻止匿名代理服务器。
精英代理 -
精英代理只发送REMOTE_ADDR标头,而其他标头为空。它会让你看起来像一个没有使用代理的普通互联网用户。精英代理服务器非常适合在互联网上传递任何限制并最大限度地保护您的隐私。您将看起来像一个普通的互联网用户,他居住在您的代理服务器所在的国家/地区。
神鸡代理是您最好的选择,因为它们很难被发现。使用匿名代理,只是为了保护您的隐私在互联网上。最后,使用透明代理 - 尽管成功的机会非常低。
4.如果要刮掉数千页,请获取高级代理
互联网上的免费代理总是被滥用,最终被反刮工具和网络服务器使用的黑名单。如果您正在进行严格的大规模数据提取,您应该为一些好的代理付费。有许多提供商甚至会为您轮换IP。
5.将IP Rotation与旋转用户代理结合使用
IP轮换本身可以帮助您通过一些反刮措施。如果您发现自己即使在使用旋转代理后也被禁止,一个好的解决方案是添加标头欺骗和旋转。
这就是我们所要说的。快乐的刮痧 哈哈
1685
257
上一篇:如何使用代理隐藏您的IP地址 - Web代理,HTTP代理,SOCKS代理
下一篇:什么是代理设置和访问代理设置