我们使用联盟链接。它们让我们能够维持运营,而您无需承担任何费用。

如何使用 IP 地理位置阻止代理来防止网页抓取

这是 Abstract API 营销主管 Razvan Popescu 的客座文章。

如果您正在抓取网站,您可能已经使用代理服务器来可靠且匿名地收集数据。但是,抓取的另一面呢?如果您想阻止代理抓取您的网站怎么办?本文将介绍网络抓取和代理的工作原理,以及代理如何 IP地理位置API 可用于防止使用代理进行网络抓取。

什么是网页抓取?

网页抓取 是将非结构化数据格式化为结构化格式的过程。例如,您可以使用 Python 来 抓取 Google 搜索结果。另一个常见的用例是从股票市场网站抓取最新的股票数据,将这些数据构造成 CSV,然后从 CSV 中提取该变量以在 Python 程序中计算股票市场回报。

这样做并不违法,但当它开始给公司的网络服务器带来负担时,他们可能会阻止您的 IP 地址。请务必检查网站的 robots.txt 文件,了解其预期的抓取行为和礼仪。

什么是代理?

当某个 IP 地址被网站屏蔽时,抓取工具可能会使用代理服务器绕过屏蔽。因此, 什么是代理? 这是第三方服务器,通过不同的 IP 地址路由您的连接。请记住,IP 地址标识连接发生的位置 - 例如,您家中的路由器。代理使该连接看起来像是来自另一个地方的另一台设备。

您可能曾经在绕过学校的互联网过滤器或使用 VPN 观看受地区限制的欧洲电视网歌唱大赛时遇到过代理。我们并不赞同这些行为,但它们采用了通过第三方连接重新路由 IP 地址的理念。

成功的网页抓取要素

只需一点 Python 代码、一些 Python 库(如 Beautiful Soup)和互联网连接,您便可以开始进行基本的网页抓取。但要让您的抓取高效、可靠、匿名(也就是成功),还有一些重要因素。

网页抓取中最重要的因素之一是使用高质量代理,甚至使用代理池中的多个代理来扩展抓取操作。高质量代理可以将您的网页抓取项目提升到一个新的水平:

  • 如果您不使用代理进行抓取,当一个网站阻止您的 IP 时,您必须去寻找另一个具有相同信息的网站。
  • 代理可以提高抓取的可靠性和数量。
  • 代理允许您查看内容,就像从世界其他地方访问时一样。如果您要抓取与位置相关的数据,这一点非常重要。
  • 代理通过用他们的 IP 替换您的 IP 来保护您的身份。这类似于 API 允许经过身份验证的用户通过界面交换数据,同时保持彼此匿名。也就是说,如果您希望您正在抓取的企业能够联系到您,您可以在第三方代理中提供您的联系信息。

为什么阻止代理是防止网络抓取的关键

如上所述,不使用代理进行抓取效率低、不安全且无法扩展。如果有人认真对待网页抓取,他们肯定会使用高质量的代理池。

代理服务器是一种强大的工具。虽然收集公共网络数据本身并不是什么坏事,但鲁莽的网络抓取可能会对网站造成很大的损害。

那么,如果我们看看这个过程的另一端,即被抓取的网站,保护我们的资源免受不良流量侵害的最佳方法是什么?我们可以使用代理检测和 IP 地理定位来根除使用代理抓取的用户并阻止他们。

什么是代理检测?

代理检测是网站所有者识别代理连接的方法——您猜对了。网站收到的 IP 地址可以根据标记地址列表检查该 IP 并阻止流量。如果抓取工具使用有限数量的 IP,代理检测器会学会阻止它们,但代理服务只会再次更改 IP 范围。

您还可以检查常见代理条目的标头,例如 x 转发,但这只会删除最基本的代理,而且我们正在尝试阻止专业人士。

如何使用 IP 地理位置阻止代理

要使用 IP 地理位置检测代理,请记住 IP 地址带有位置信息,可宣布连接发生的位置。代理服务器使该连接看起来来自不同的地理位置。

因此,如果我们尝试识别代理服务器,我们可以使用 Abstract 的免费 IP 地理位置 API 来测试这一点。您可以免费测试它,只要您 注册订阅.

让我们尝试在浏览器中测试一个请求:

				
					https://ipgeolocation.abstractapi.com/v1/?api_key={YOUR API KEY}

				
			

它将返回我们的 IP、地理位置以及许多其他有趣的数据:

				
					{
    "ip_address": "174.49.204.134",
    "city": "York",
    "city_geoname_id": 4562407,
    "region": "Pennsylvania",
    "region_iso_code": "PA",
    "region_geoname_id": 6254927,
    "postal_code": "17402",
    "country": "United States",
    "country_code": "US",
    "country_geoname_id": 6252001,
    "country_is_eu": false,
    "continent": "North America",
    "continent_code": "NA",
    "continent_geoname_id": 6255149,
    "longitude": -76.6653,
    "latitude": 39.9552,
    "security": {
        "is_vpn": false
    }

				
			

如果我们使用 VPN 并尝试相同的测试请求,我们会得到不同的结果。VPN 与代理不同,但它们提供的结果类似。

				
					{
    "ip_address": "23.105.165.55",
    "city": "Manassas",
    "city_geoname_id": 4771401,
    "region": "Virginia",
    "region_iso_code": "VA",
    "region_geoname_id": 6254928,
    "postal_code": "20110",
    "country": "United States",
    "country_code": "US",
    "country_geoname_id": 6252001,
    "country_is_eu": false,
    "continent": "North America",
    "continent_code": "NA",
    "continent_geoname_id": 6255149,
    "longitude": -77.4918,
    "latitude": 38.7493,
    "security": {
        "is_vpn": false
    }
				
			

现在,我们可以使用此 IP 地理位置 API 查看传入流量来自何处,并根据该信息做出阻止决定。以下是一些战略考虑:

  • 我们可能会阻止来自欺诈活动频繁的国家/地区的 IP。
  • 我们可能会阻止我们通常客户群之外的地理位置的请求。
  • 我们可能会获取这些数据并发现代理流量没有做任何可疑或消耗资源的事情。
  • 我们可能会使用这些数据对我们的广告活动进行地理定位。(那个城市的这家公司正在颠覆一切!)

所有代理都能被检测并阻止吗?

代理猫捉老鼠的游戏已经持续了很长时间,而且可能不会停止。代理并不违法,但围绕代理的很多讨论都让它们听起来像是只有信用卡诈骗者和匿名者才会使用它们。它们可以用来负责任地匿名化在线流量,但与任何工具一样,它们有时会落入坏代理的手中。

考虑到 恶意机器人活动 现在占互联网流量的 39%,现在是时候了解谁在访问您的硬件,以及它是否影响您的客户了。IP 地理位置数据库是收集和采取行动的绝佳工具。