- “http”: “http://
- @proxy_ip:port”,
“https”: “http:// - @proxy_ip:port”,
}
# 发送请求
try:
response = requests.get(‘http://httpbin.org/ip', proxies=proxies, timeout=5)
print(response.json())
except requests.exceptions.RequestException as e:
print(f“请求失败: {e}”)在上面的代码中,和
是代理的认证信息,proxy_ip
和port
是代理服务器的地址和端口。若代理不需要认证,可以省略用户名和密码。
- 使用urllib库配置代理IP除了requests库,Python的标准库urllib也可以用来设置代理IP。以下是使用urllib配置代理的示例:
设置代理IPimport urllib.request
# 设置代理IP
proxy_support = urllib.request.ProxyHandler({
“http”: “http://proxy_ip:port",”https“: ”http://proxy_ip:port",
})
opener = urllib.request.build_opener(proxy_support)
urllib.request.install_opener(opener)
# 发送请求
try:
response = urllib.request.urlopen(’http://httpbin.org/ip', timeout=5)
print(response.read().decode(‘utf-8’))
except urllib.error.URLError as e:
print(f“请求失败: {e}”)在这个示例中,我们使用ProxyHandler
来设置代理,并通过build_opener
创建一个opener,然后将其安装为全局opener。这样,后续的请求都会使用指定的代理IP。 - 处理代理IP的异常情况在使用代理IP时,可能会遇到一些异常情况,比如代理IP失效、请求超时等。为了提高代码的健壮性,可以添加异常处理机制:
import requests
def fetch_data(url, proxies):
try:
response = requests.get(url, proxies=proxies, timeout=5)
response.raise_for_status() # 检查请求是否成功
return response.json()
except requests.exceptions.ProxyError:
print(“代理错误,请检查代理ip设置。”)
except requests.exceptions.Timeout:
print(“请求超时,请稍后重试。”)
except requests.exceptions.RequestException as e:
print(f“请求失败: {e}”)
# 使用代理IP
proxies = {
“http”: “http://proxy_ip:port",
”https“: ”http://proxy_ip:port",
}
data = fetch_data(‘http://httpbin.org/ip', proxies)
if data:
print(data)4. 动态获取代理IP有时,使用静态的代理IP可能会导致被封禁,动态获取代理IP可以有效降低风险。可以通过访问一些提供免费代理ip的网站,获取可用的代理IP列表。例如:
import requests
def get_free_proxies():
response = requests.get(’https://www.free-proxy-list.net/')
# 解析HTML并提取代理IP(此处省略具体解析代码,需根据实际情况实现)
# 返回一个可用的代理IP列表
return [“http://proxy_ip_1:port", "http://proxy_ip_2:port"]
# 使用动态获取的代理IP
proxies_list = get_free_proxies()
for proxy in proxies_list:
proxies = {
”http“: proxy,
”https“: proxy,
}
data = fetch_data(‘http://httpbin.org/ip', proxies)
if data:
print(data)总结在Python中使用代理IP非常简单,无论是通过requests库还是urllib库,都可以轻松实现。通过设置代理IP,您可以有效地保护个人隐私、提高数据采集的效率。希望本文能帮助您更好地理解如何在Python中使用代理IP,让您的网络请求更加安全、顺畅!