在使用Python进行网络请求时,设置代理可以帮助我们隐藏真实IP地址,避免因频繁请求而被目标网站封禁。以下是在Python代码中设置代理的几种常见方法。
一、使用requests
库设置代理
requests
库是Python中常用的HTTP请求库,它支持通过proxies
参数设置代理。以下是使用requests
库设置代理的示例代码:
import requests
# 目标URL
url = 'https://www.example.com'
# 代理服务器地址
proxies = {
'http': 'http://123.45.67.89:8080',
'https': 'https://123.45.67.89:8080'
}
# 发送GET请求,设置代理
response = requests.get(url, proxies=proxies)
# 检查请求是否成功
if response.status_code == 200:
print('请求成功')
print(response.text)
else:
print('请求失败,状态码:', response.status_code)
在上述代码中,proxies
是一个字典,其中http
和https
键分别对应HTTP和HTTPS代理服务器的地址。通过将proxies
参数传递给requests.get()
方法,即可使用指定的代理服务器发送请求。
二、使用requests
库设置HTTPS代理
如果需要使用HTTPS代理,只需将proxies
字典中的https
键对应的值设置为HTTPS代理服务器的地址即可。示例代码如下:
import requests
# 目标URL
url = 'https://www.example.com'
# HTTPS代理服务器地址
proxies = {
'https': 'https://123.45.67.89:8080'
}
# 发送GET请求,设置HTTPS代理
response = requests.get(url, proxies=proxies)
# 检查请求是否成功
if response.status_code == 200:
print('请求成功')
print(response.text)
else:
print('请求失败,状态码:', response.status_code)
三、使用requests
库设置 SOCKS 代理
除了HTTP和HTTPS代理,requests
库还支持SOCKS代理。要使用SOCKS代理,需要先安装requests[socks]
扩展包。可以使用以下命令进行安装:
pip install requests[socks]
安装完成后,即可使用SOCKS代理发送请求。示例代码如下:
import requests
# 目标URL
url = 'https://www.example.com'
# SOCKS代理服务器地址
proxies = {
'http': 'socks5://123.45.67.89:1080',
'https': 'socks5://123.45.67.89:1080'
}
# 发送GET请求,设置SOCKS代理
response = requests.get(url, proxies=proxies)
# 检查请求是否成功
if response.status_code == 200:
print('请求成功')
print(response.text)
else:
print('请求失败,状态码:', response.status_code)
在上述代码中,proxies
字典中的值使用socks5://
协议前缀指定SOCKS代理服务器的地址。
四、使用环境变量设置代理
除了在代码中直接设置代理,还可以通过设置环境变量来全局配置代理。在Linux或macOS系统中,可以使用以下命令设置环境变量:
export http_proxy=http://123.45.67.89:8080
export https_proxy=https://123.45.67.89:8080
在Windows系统中,可以使用以下命令设置环境变量:
set http_proxy=http://123.45.67.89:8080
set https_proxy=https://123.45.67.89:8080
设置环境变量后,requests
库会自动使用这些代理服务器发送请求,无需在代码中显式设置proxies
参数。
五、注意事项
-
代理服务器的有效性:在使用代理服务器之前,需要确保其有效性和稳定性。可以使用在线代理检测工具或自行编写测试代码来验证代理服务器是否可用。
-
代理服务器的协议支持:不同的代理服务器可能支持不同的协议(如HTTP、HTTPS、SOCKS等)。在设置代理时,需要根据目标网站的要求选择合适的代理协议。
-
代理服务器的认证信息:如果代理服务器需要认证信息(如用户名和密码),可以在代理服务器地址中包含这些信息。例如:
proxies = { 'http': 'http://username:password@123.45.67.89:8080', 'https': 'https://username:password@123.45.67.89:8080' }
-
代理服务器的切换:在实际应用中,为了避免因单个代理服务器失效而导致请求失败,可以使用代理池,随机选择可用的代理服务器进行请求。
-
通过以上方法,你可以在Python代码中灵活地设置代理,提高网络请求的稳定性和安全性。希望这些方法对你有所帮助!