本文将逐步介绍如何在 Python 中使用 Requests 设置和轮转代理。
Python请求 使用Python的Requests库是发送HTTP请求的最流行方法。它是最易于使用的库之一,与其他Python替代方案相比,通常需要编写较少的代码来提取数据。
网络爬虫爱好者知道——在没有质量代理的情况下,你不会赤脚走很长的路。如今,网站使用先进的反爬虫措施来保护自己免受自动化攻击。因此,构建和维护自己的爬虫包括设置代理服务器,以避免IP地址封禁或其他网页爬取障碍。
在本文中,您将学习如何使用Python的Requests库设置和轮转代理。
目录:
基本配置 如何对代理进行身份验证 如何设置代理会话 如何设置环境变量 如何使用Requests库轮转代理 如何在Python的Requests库中使用代理服务器 在开始之前,您需要具备以下先决条件:
Python 3:您需要安装最新版本的Python。Requests库:您可以通过运行pip install requests添加它。代码编辑器:使用您喜欢的任何编辑器。 如何使用请求设置代理: 基本配置
步骤1:要使用Python的Requests库设置代理,请运行初始化命令。
import requests 步骤2:然后,添加一个proxies参数,并填入您的代理信息。
HTTP代理:
proxies = { 'http': 'http://host:PORT', 'https': 'http://host:PORT', } SOCKS5代理:
proxies = { 'http': 'socks5://host:PORT', 'https': 'socks5://host:PORT', } 步骤3:现在,让我们创建一个response变量,并传入proxies参数。
response = requests.get('URL', proxies = proxies) 备注:您可以使用任何请求方法,例如get()、post()或put()。
如何验证代理
要验证您的代理,请传递用户名和密码以及代理配置。
proxies = { 'http': 'http://user:password@host:PORT', 'https': 'http://user:password@host:PORT', }
response = requests.get('URL', proxies = proxies) 如何设置代理会话
如果您希望使用相同的代理配置进行多个请求,您需要创建一个会话并添加您的代理。您可以通过传递一个带有代理配置的会话对象并通过它发送请求来实现这一点。
session = requests.Session() session.proxies = proxies
response = session.get('URL') 如何设置环境变量
如果您希望将代理配置存储以供将来使用,您需要设置环境变量。这样,您可以在不修改代码的情况下轻松切换不同的代理设置。
步骤1. 根据您的操作系统,您可以设置/导出环境变量到代理地址和端口。
Windows用户:
set http_proxy=http://username:password@:PORT set https_proxy=http://username:password@:PORT Linux用户:
export http_proxy=http://username:password@:PORT export https_proxy=http://username:password@:PORT 步骤2. 然后,导入os库并设置代理字典以使用环境变量。
import os proxies = { http: os.environ['http_proxy'], https: os.environ['https_proxy'] } requests.get('URL',proxies = proxies) 如何用Python请求,实现代理轮转
如果你不想被网站列入黑名单或受到访问频率限制,你需要轮转你的代理。否则,从同一个IP地址发出太多连接请求,你的目标网站可能会察觉到这一点。
为了轮转代理,首先你需要一组IP地址池。你可以获取免费的IP地址列表,但我们强烈推荐使用付费代理服务。免费的IP地址不可靠,可能会注入广告,而且你的数据容易被泄露。而付费代理则维护自己的基础设施,因此被屏蔽的可能性较小。
步骤1.首先,导入以下库:
import requests import random 步骤2.然后,定义一个你想使用的IP地址列表。
proxy_pool = ['user:password@host:3001', 'user:password@host:3002', 'user:password@host:3003'] 步骤3.现在,让我们执行10个请求。
for i in range(10): 1)从你的IP地址池中随机选择一个代理。
proxy = {'http': random.choice(proxy_pool)}
2)使用相同的代理发送请求。
response = requests.get('URL', proxies=proxy)
3)打印响应结果。
print(response.text)
以下是完整的脚本:
import requests import random
proxy_pool = ['user:password@host:3001', 'user:password@host:3002', 'user:password@host:3003']
for i in range(10): # Select a random proxy from the pool proxy = {'http': random.choice(proxy_pool)}
# Send the request using the same proxy
response = requests.get('URL', proxies = proxy)
# Print the response
print(response.text)
本文转载自-