如何在 Python 中使用代理

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

在计算机科学领域工作时,我们经常会遇到 "代理 "一词。当连接到互联网时,每台计算机都会获得一个唯一的互联网协议(IP)地址,用于识别计算机及其地理位置。每当计算机需要互联网上的任何信息时,都会发出一个请求。该请求是

目录

在计算机科学领域工作时,我们经常会遇到 "代理"一词。当连接到互联网时,每台计算机都会获得一个唯一的互联网协议(IP)地址,用于识别计算机及其地理位置。每当计算机需要从互联网获取信息时,就会发出一个请求。请求会发送到目标计算机,目标计算机会检查请求的信息类型。如果允许向我们的 IP 地址提供信息,目标计算机就会将信息发送回来。有时,计算机希望在不被识别的情况下从互联网获取信息。这种信息通常会被阻止,但我们可以使用代理来获取,代理在客户端和服务器机器之间充当中间人。

客户通常使用代理服务器匿名浏览网页和请求资源,因为代理服务器在客户计算机和互联网之间起着识别作用。 

随着人们对网络安全和数据盗窃问题的日益关注,代理服务器已变得相当流行。这里的问题是,代理服务器是如何与我们系统的安全联系在一起的?我们可以说,代理服务器在我们的服务器和外部世界之间增加了一个额外的安全级别。这种额外的安全性有助于保护我们的系统免遭入侵。 

如何在 Python 中使用代理?

要在 Python请求中使用代理,需要遵循以下步骤。

进口申请

导入请求包,这是一个简单的 HTTP 库。通过该程序包,你可以轻松发送请求,而无需在 URL 中手动添加查询字符串。你可以使用下面的命令导入请求。

进口请求

创建词典

您需要创建一个代理字典,定义 HTTP 和 HTTPS 连接。你可以给字典变量取任何名字,如 "代理",将协议映射到代理 URL。此外,你还必须将 URL 变量设置为你要从哪个网站进行搜刮。

proxies = {
  "http":'http://203.190.46.62:8080',
  "https":'https://111.68.26.237:8080'
}
url = 'https://httpbin.org/ip'

在这里,字典为 HTTP 和 HTTPS 这两个不同的协议定义了代理的 URL。

创建响应变量

您必须创建一个使用任何请求方法的响应变量。该方法需要两个参数:

  • 您创建的 URL
  • 您定义的字典
response = requests.get(url,proxies = 代理)
print(response.json())

输出结果如下

申请方法

有许多请求方法,如

  • GET - 它使用给定的 URL 从给定的服务器检索信息。 
  • POST - 这种方法要求指定的网络服务器接受请求信息正文中的附带数据,并将其存储起来。
  • PUT - 请求将所附数据存储到给定的 URL 下。
  • DELETE - 该方法向给定的 URL 发送 DELETE 请求。
  • PATCH - HTTP 协议支持这种请求方法,可对现有资源进行部分更改。 
  • HEAD - 当不需要文件内容,只需要 HTTP 头信息或 status_code 时,它会向给定的 URL 发送 HEAD 请求。

在指定 URL 时,可以使用下面的请求方法语法。这里,我们的 URL 与上述代码中使用的 URL 相同,即https://httpbin.org/ip。

response = requests.get(url)
response = requests.post(url, data={"a": 1, "b": 2})
response = requests.put(url)
response = requests.delete(url)
response = requests.patch(url)
response = requests.head(url)
response = requests.options(url)

代理会话

如果你想从使用会话的网站上抓取数据,可以按照下面给出的步骤操作。

步骤#01

导入请求库。

进口请求

步骤#02

通过创建会话变量并将其设置为请求 Session() 方法来创建会话对象。 

session = requests.Session()

session.proxies = {
   'http': 'http://10.10.10.10:8000',
   'https': 'http://10.10.10.10:8000',
}

url = 'http://mywebsite.com/example'

步骤#03

通过 requests 方法发送会话代理,并将 URL 作为参数传递。

response =session.get(url)

代理的主要类型

让我们来讨论一下代理的两种基本类型,即.....;

静态代理旋转代理

静态代理

我们可以将静态代理定义为通过互联网服务提供商(ISP)合同分配的数据中心互联网协议。静态代理的设计目的是在一定时间内保持与一个代理服务器的连接。静态 "这一名称意味着,它允许我们在需要的时间内以居民用户的身份使用相同的 IP。 

简而言之,通过使用静态代理,我们可以获得数据中心代理的速度和住宅代理的高匿名性。此外,静态代理还能避免 IP 地址轮换,使其使用更加简单。

与普通数据中心代理不同,静态 IP 服务不是通过虚拟机创建的。这些代理(也称为粘性 IP 地址)在几乎所有网站看来都像真正的消费者。 

轮流代理

我们可以将代理轮换定义为每发送一个新请求就会更改我们 IP 地址的功能。

当我们访问一个网站时,我们会发送一个请求,向目标服务器显示大量数据,包括我们的 IP 地址。例如,当我们使用 scraper(用于生成线索)收集数据时,我们会发送很多这样的请求。因此,当大多数请求来自同一个 IP 时,目标服务器就会产生怀疑并禁止它。 

因此,必须有一种解决方案,在我们每次发送请求时都能更改我们的 IP 地址。这个解决方案就是旋转代理。因此,为了避免在网络搜刮中为轮换 IP 而获取搜刮器所带来的不必要的麻烦,我们可以获取轮换代理,并让我们的提供商负责轮换。

为什么需要使用代理?

以下是使用各类代理的原因。

  • 社交媒体管理者非常欣赏代理服务器,因为它可以让他们只使用一个服务器。如果用户不断更换 IP 地址登录自己的账户,社交媒体平台就会产生怀疑,并屏蔽他们的个人资料。
  • 电子商务网站可能会对来自其他地方的用户和回头客显示不同的数据。此外,如果买家从不同的 IP 地址多次登录其账户,服务器就会发出警报。因此,我们必须使用代理进行网上购物。
  • 当专家希望从一个地方通过用户的眼睛检查所需数据时,我们需要人工营销研究的代理。 
  • 广告验证允许广告商检查其广告是否显示在正确的网站上,是否被正确的受众看到。不断变化的 IP 地址可以访问许多不同的网站,因此可以在不屏蔽 IP 地址的情况下验证广告。
  • 从特定地点访问时,相同的内容可能看起来不一样,或者可能无法访问。使用代理可以让我们不受地理位置的限制,访问必要的数据。 
  • 我们可以使用代理访问数据,加快浏览速度,因为它们有一个良好的缓存系统。

结论

到目前为止,我们已经讨论过 代理在客户端和服务器机器之间的中继作用。每当您请求信息时,您的计算机会将请求发送给代理,然后代理会使用不同的 IP 地址将信息发送给目标计算机。因此,您的 IP 地址是保密的。此外,您还可以使用 Python 中的请求模块来使用代理,并根据需要执行各种操作。如果您需要一个具有数据中心 代理的速度和住宅代理的高匿名性的静态 IP,那么静态代理是您的最佳选择,因为每次新请求的 IP 地址都不会改变。相反,旋转代理可为测试和搜索提供优势。