如何使用代理服务器在 Python 中轮换 IP 地址?2024 年的 5 个简单步骤

方法, 代理, 蟒蛇, Nov-22-20225 分钟阅读

使用代理时,您不会直接连接到目标服务器,而是直接向代理服务器发出请求,代理服务器会对请求进行评估并返回响应。代理有很多好处,比如可以隐藏真实 IP 地址,绕过过滤器和审查制度等。 有时很难进行高级网络搜索

目录

使用代理时,您不会直接连接到目标服务器,而是直接向代理服务器发出请求,代理服务器会对请求进行评估并返回响应。代理有很多好处,比如可以隐藏真实 IP 地址,绕过过滤和审查等。 

由于从同一 IP 地址发送多个请求,有时很难执行高级网络搜刮。网络搜刮者面临着被搜刮网站屏蔽的常见问题。但他们可以使用许多技术来防止被屏蔽,例如

  • 轮换 IP 地址
  • 使用无头浏览器
  • 降低爬行率
  • 使用代理

代理旋转器可以帮助你绕过大多数反抓取措施。您还可以利用它避开目标网站实施的任何速率限制,成功提取数据。但什么是旋转代理呢?它是一种为代理池中的每个连接分配一个新 IP 地址的代理。这意味着您可以通过启动脚本并获取 1000 个不同的 IP 地址,向任意数量的网站发送 1000 个请求。

本文将帮助你了解如何在 python 中使用代理来轮换 IP 地址。

如何在 Python 中使用代理服务器旋转 IP 地址

您可以抓取免费代理列表,并将其保存在名为 list_proxy.txt 的文本文件中。然后,您可以按照以下步骤在 Python 中旋转 IP 地址。

导入图书馆

您必须使用下面的命令导入 Python 的请求模块。

进口请求

如果您的环境中没有安装该模块,可以使用下面的命令进行安装。

pipinstallrequests

创建功能

您必须创建一个 send_request 函数,该函数需要两个参数,即会话和代理。最好使用 HTTP 代理,因为大多数免费代理都不使用 HTTPS 协议。我们将使用 try-except 块,因为大多数免费代理都被列入了屏蔽名单,无法正常工作。

def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass

阅读 .txt 文件

下面是代码的主要部分。您必须读取 list_proxy.txt 文件,并将其保存到名为 Proxies 的变量中,如下所示。

if__name__ =="__main__"with open('list_proxy.txt','r')as file:
       proxies =file.readlines()

使用 For 循环

要在 Python 中创建会话,必须使用请求模块。在下面的代码中,我们使用 for 循环来遍历代理。然后,我们将会话和代理传递给 send_request 函数。 

requests.Session()作为session:
  forproxyinproxies:
       send_request(session, proxy)

运行脚本

你可以运行脚本并看到如下所示的输出结果。您将看到一长串代理列表,但请记住,这些代理都不起作用。 

pythonrotateproxy.py

您的整个代码将如下所示:

import requests


def send_request(session, proxy):
   try:
       response = session.get('http://httpbin.org/ip', proxies={'http': f"http://{proxy}"})
       print(response.json())
   except:
       pass


if __name__ == "__main__":
   with open('list_proxy.txt', 'r') as file:
       proxies = file.readlines()

   with requests.Session() as session:
       for proxy in proxies:
           send_request(session, proxy)

建立代理旋转器的技巧

下面给出了在 Python 中使用旋转代理时旋转代理的一些提示。

使用可靠的免费代理服务

大多数可用的免费代理服务都很拥挤,会导致意想不到的崩溃和令人沮丧的延迟。因此,当您计划使用免费代理服务时,您必须检查它们是否符合您的搜索需求,同时不会造成任何明显的缩减。

大多数免费代理的有效期都是有限的,因此您可以用 Python 构建自己的逻辑,用工作 IP 地址轮换免费代理列表轮换器。这样,您在网络搜索时就不会受到任何干扰。 

避免使用可预测的代理 IP 地址

您必须避免使用遵循特定序列或可预测格式(如属于同一组群)的 IP 地址。因为大多数反搜索工具都能轻松检测到来自此类 IP 地址的请求。例如,你应该避免使用以下序列的旋转 IP 地址,因为它很快就会引起注意。

103.243.132.11

103.243.132.12

103.243.132.13

103.243.132.14

考虑使用高级代理服务

免费代理 IP 轮播器不安全且速度慢。因此,如果您要执行高级和大规模的网页搜刮项目,使用它们并不合适。使用优质的高级代理,您可以获得高质量的服务,并在不遇到封锁或中断的情况下,搜刮成千上万的网页。 

要使用高级代理服务,您需要支付几美元,并获得一个能够满足您的数据提取需求并保证您的隐私的服务提供商。

选择精英代理

以下是互联网上的三大类代理服务器。

  • 精英代理
  • 匿名代理
  • 透明代理

在这些代理中,精英代理是最好的选择,因为它们可以防止检测和绕过限制。您可以使用精英代理只发送 REMOTE_ADDR 标头,而将其他标头保持为空。这样,您就可以通过这些代理获得最佳的隐私保护。

另一方面,透明代理会透露您的 IP 地址详情,并通过 HTTP_VIA 标头和 HTTP_X_FORWARDED_FOR 标头发送您的真实 IP。匿名代理不会透露你的实际 IP 地址。它要么发送代理的 IP,要么让它为空。

将 IP 轮换与用户代理轮换相结合

您可以使用 IP 轮换来轮换多个 IP 地址,从而避免被发现。不过,一些反抓取措施可以识别此类活动,阻止你采集数据。因此,除了轮换 IP 地址外,您还需要轮换用户代理,以增加成功的机会。 

常见问题:

1.如何用 python 使用代理服务器轮换 IP 地址?
借助 python 请求库,您可以轻松轮转代理服务器。首先,从ProxyScrape网站下载免费代理列表;其次,创建一个函数,用于执行整个 IP 轮换过程;第三,使用读取函数读取下载的免费代理;最后,使用 for 循环运行脚本,获取会话可用的代理。
2.网上是否有代理轮换器?
是的,网上有代理旋转器。您可以使用这些代理旋转器来完成繁重的工作,而不用手动旋转数据中心的代理。但这些都是付费服务;如果您想要一个免费的代理旋转器,那么借助 python 创建一个旋转器是最好的选择。
3.代理如何帮助网络搜索?
代理有助于掩盖您的原始 IP 地址,并使用自己的 IP 地址向目标服务器发送多个请求,以获取必要的信息。在网络刮擦中,您需要快速发送多个请求,而目标服务器会将此视为异常行为并屏蔽您的 IP 地址。代理可以帮助你避免这种情况。

结论

用 Python 创建代理轮播器非常简单。您可以生成随机代理,然后建立逻辑从网站上搜刮数据。除了 数据中心代理和 住宅代理,还有精英代理、匿名代理和透明代理。精英代理是最佳选择,因为它们很难被目标网站检测到。如果你只想在互联网上保护自己的隐私,可以使用匿名代理。最后,你可以使用透明代理,但它们成功的几率最低。本文希望提供深入的信息,并举例说明如何通过简单的编码步骤在 python 中使用代理来旋转 IP 地址。