
Python requests包基础代理设置
使用requests包设置代理IP非常简单,只需要在请求方法中传入proxies参数即可。代理IP的格式通常为Protocole://nom d'utilisateur:mot de passe@adresse IP:portou协议://IP地址:端口(如果不需要认证)。
import requests
设置代理IP
proxies = {
'http': 'http://用户名:密码@proxy.ipipgo.com:8080',
'https': 'https://用户名:密码@proxy.ipipgo.com:8080'
}
发送带代理的请求
response = requests.get('http://httpbin.org/ip', proxies=proxies)
print(response.json())
在实际使用中,ipipgo提供的代理服务支持HTTP和SOCKS5协议,可以根据具体需求选择合适的协议类型。如果是动态住宅代理,ipipgo还支持轮换IP功能,能够自动切换不同的IP地址。
不同类型代理IP的配置技巧
根据业务需求的不同,需要选择不同类型的代理IP。ipipgo提供动态住宅代理和静态住宅代理两种主要类型,它们在配置和使用上有所区别。
| Type d'agent | Scénarios applicables | 配置特点 |
|---|---|---|
| Agents résidentiels dynamiques | Collecte de données, robots d'indexation | IP自动轮换,支持会话保持 |
| Agents résidentiels statiques | Gestion des comptes, tâches à long terme | IP固定不变,稳定性高 |
对于需要频繁更换IP的场景,可以使用ipipgo的动态住宅代理,并设置自动轮换:
import requests
import time
动态代理配置示例
def rotating_proxy_request(url):
proxies = {
'http': 'http://用户名:密码@proxy.ipipgo.com:8080',
'https': 'https://用户名:密码@proxy.ipipgo.com:8080'
}
设置会话保持或轮换参数
headers = {
'Proxy-Switch': 'rotate' 请求轮换IP
}
response = requests.get(url, proxies=proxies, headers=headers)
return response
使用示例
for i in range(5):
result = rotating_proxy_request('http://httpbin.org/ip')
print(f"第{i+1}次请求IP: {result.json()}")
time.sleep(1)
代理IP的异常处理与重试机制
在实际使用中,代理IP可能会因为网络问题或IP失效而出现连接失败的情况。为了保证程序的稳定性,需要添加适当的异常处理和重试机制。
import requests
from requests.adapters import HTTPAdapter
from requests.packages.urllib3.util.retry import Retry
def create_session_with_retry():
session = requests.Session()
设置重试策略
retry_strategy = Retry(
total=3, 最大重试次数
backoff_factor=1, 重试等待时间
status_forcelist=[429, 500, 502, 503, 504], 需要重试的状态码
)
adapter = HTTPAdapter(max_retries=retry_strategy)
session.mount("http://", adapter)
session.mount("https://", adapter)
return session
使用带重试机制的会话
session = create_session_with_retry()
proxies = {
'http': 'http://用户名:密码@proxy.ipipgo.com:8080',
'https': 'https://用户名:密码@proxy.ipipgo.com:8080'
}
try:
response = session.get('http://目标网站.com', proxies=proxies, timeout=10)
print("请求成功")
except requests.exceptions.RequestException as e:
print(f"请求失败: {e}")
代理IP的性能优化技巧
为了提高代理IP的使用效率,可以采用连接池管理和请求批处理等技术。ipipgo的代理服务支持高并发请求,合理配置可以显著提升性能。
import requests
from concurrent.futures import ThreadPoolExecutor
使用连接池管理代理连接
session = requests.Session()
adapter = requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=20)
session.mount('http://', adapter)
session.mount('https://', adapter)
proxies = {
'http': 'http://用户名:密码@proxy.ipipgo.com:8080',
'https': 'https://用户名:密码@proxy.ipipgo.com:8080'
}
def make_request(url):
try:
response = session.get(url, proxies=proxies, timeout=5)
return response.json()
except Exception as e:
return {'error': str(e)}
批量请求处理
urls = ['http://httpbin.org/ip'] 10
with ThreadPoolExecutor(max_workers=5) as executor:
results = executor.map(make_request, urls)
for result in results:
print(result)
Questions fréquemment posées et solutions
Q: 代理IP连接超时怎么办?
A: 首先检查网络连接是否正常,然后确认代理IP地址和端口是否正确。ipipgo提供99.9%的可用性保证,如果持续超时可以联系技术支持。
Q: 如何验证代理IP是否生效?
A: 可以通过访问http://httpbin.org/ip来验证当前使用的IP地址,返回的IP应该显示为代理服务器的IP。
Q: 动态代理和静态代理如何选择?
A: 如果需要频繁更换IP避免被封,选择动态住宅代理;如果需要长期稳定的IP连接,选择静态住宅代理。ipipgo两种类型都提供,可以根据业务需求灵活选择。
Q: 代理IP速度慢如何优化?
A: 可以选择距离目标服务器更近的代理节点,ipipgo提供全球220+国家的节点选择。同时合理设置超时时间和连接池大小也能提升性能。
为什么选择ipipgo代理服务
ipipgo作为专业的代理IP服务商,提供高质量的动态住宅代理和静态住宅代理服务。其动态住宅代理IP资源总量高达9000万+,覆盖全球220+国家和地区,所有IP均来自真实家庭网络,具备高度匿名性。静态住宅代理IP资源总量50w+,确保业务长期稳定高效运行。
ipipgo支持HTTP(S)和SOCKS5全协议,提供灵活的套餐选择,包括动态住宅(标准)和动态住宅(企业)等不同规格,满足从个人开发者到企业级用户的不同需求。无论是数据采集、网络测试还是其他需要代理IP的业务场景,ipipgo都能提供稳定可靠的服务支持。

