requests库:最常用的代理IP设置方式
对于Python初学者来说,requests库是最容易上手的HTTP请求库。它提供了简单直观的proxies参数来设置代理IP,只需要几行代码就能实现代理访问。
天启代理支持HTTP/HTTPS/SOCKS5三种协议,requests库可以完美兼容。下面是一个基础示例:
import requests
proxies = { 'http': 'http://用户名:密码@代理服务器地址:端口', 'https': 'https://用户名:密码@代理服务器地址:端口' }
response = requests.get('https://httpbin.org/ip', proxies=proxies) print(response.json())
天启代理采用终端IP授权和账号密码授权双重认证方式,确保账号资源安全。如果使用终端IP授权,代码可以更简洁:
proxies = { 'http': 'http://代理服务器地址:端口', 'https': 'https://代理服务器地址:端口' }
在实际项目中,我们通常需要处理多个代理IP,实现自动切换。天启代理API接口请求时间小于1秒,配合requests库可以轻松构建IP池:
import requests import random
def get_proxy_list(): 从天启代理API获取IP列表 api_url = "天启代理API地址" response = requests.get(api_url) return response.json()['data']
proxy_list = get_proxy_list() proxy_info = random.choice(proxy_list)
proxies = { 'http': f'http://{proxy_info["ip"]}:{proxy_info["port"]}', 'https': f'https://{proxy_info["ip"]}:{proxy_info["port"]}' }
这种方式的优势是简单易用,适合中小规模的爬虫项目。天启代理全国200+城市节点,IP可用率≥99%,能够满足大部分业务需求。
urllib库:Python内置的代理解决方案
urllib是Python的标准库,无需安装第三方包即可使用。虽然用法相对复杂,但在某些环境下(如服务器部署)更为稳定可靠。
天启代理的HTTP/HTTPS协议支持与urllib完美兼容,以下是基本用法:
from urllib import request import ssl
创建代理处理器 proxy_handler = request.ProxyHandler({ 'http': 'http://用户名:密码@代理服务器地址:端口', 'https': 'https://用户名:密码@代理服务器地址:端口' })
创建opener opener = request.build_opener(proxy_handler)
安装为全局opener request.install_opener(opener)
发送请求 response = request.urlopen('https://httpbin.org/ip') print(response.read().decode())
对于需要更高安全性的场景,天启代理的HTTPS协议配合SSL证书验证可以提供更好的安全保障:
跳过SSL证书验证(测试环境使用) ssl._create_default_https_context = ssl._create_unverified_context
或者使用自定义SSL上下文 context = ssl.create_default_context() context.check_hostname = False context.verify_mode = ssl.CERT_NONE
urllib库的优势在于稳定性,天启代理响应延迟≤10毫秒的性能表现,在这种原生库中能够得到充分发挥。
Selenium自动化测试中的代理设置
对于需要模拟浏览器行为的场景,Selenium是首选工具。天启代理的纯净网络环境特别适合Selenium自动化操作,避免因IP质量问题导致的验证码触发。
Chrome浏览器设置代理示例:
from selenium import webdriver from selenium.webdriver.chrome.options import Options
chrome_options = Options()
设置代理 proxy = "代理服务器地址:端口" chrome_options.add_argument(f'--proxy-server=http://{proxy}')
如果需要认证 chrome_options.add_extension('proxy_auth_plugin.zip') 需要提前准备认证插件
driver = webdriver.Chrome(options=chrome_options) driver.get('https://httpbin.org/ip')
更优雅的方式是使用代理认证插件,避免在代码中明文存储账号密码。天启代理的技术客服团队可以提供相关的技术指导。
对于Firefox浏览器:
from selenium import webdriver
profile = webdriver.FirefoxProfile() profile.set_preference('network.proxy.type', 1) profile.set_preference('network.proxy.http', '代理服务器地址') profile.set_preference('network.proxy.http_port', 端口号) profile.set_preference('network.proxy.ssl', '代理服务器地址') profile.set_preference('network.proxy.ssl_port', 端口号)
driver = webdriver.Firefox(firefox_profile=profile)
天启代理的自建机房纯净网络能够有效降低Selenium操作被反爬机制识别的风险,提高业务成功率。
实战技巧与最佳实践
代理IP异常处理是保证程序稳定性的关键。即使天启代理IP可用率≥99%,也需要做好错误处理:
import requests from requests.adapters import HTTPAdapter from requests.packages.urllib3.util.retry import Retry
def requests_retry_session( retries=3, backoff_factor=0.3, status_forcelist=(500, 502, 504), session=None, ): session = session or requests.Session() retry = Retry( total=retries, read=retries, connect=retries, backoff_factor=backoff_factor, status_forcelist=status_forcelist, ) adapter = HTTPAdapter(max_retries=retry) session.mount('http://', adapter) session.mount('https://', adapter) return session
连接超时设置也很重要,天启代理接口请求时间<1秒,建议设置合理的超时时间:
try: response = requests.get(url, proxies=proxies, timeout=10) except requests.exceptions.Timeout: print("请求超时,切换下一个代理IP")
对于需要高并发的业务场景,天启代理的高性能服务器和分布式集群架构能够支持大量并发请求。
常见问题解答
Q: 代理IP连接失败怎么办?
A: 首先检查代理地址和端口是否正确,然后验证账号密码。天启代理提供724小时技术客服,可以快速排查问题。
Q: 如何测试代理IP是否生效?
A: 访问httpbin.org/ip等测试网站,查看返回的IP地址是否变为代理IP。
Q: 遇到SSL证书错误如何解决?
A: 天启代理的HTTPS协议支持完整的证书链,如遇问题可暂时关闭验证(测试环境)或更新证书库。
Q: 代理速度慢可能是什么原因?
A: 可能是网络延迟或代理服务器负载高。天启代理的响应延迟≤10毫秒,通常能提供稳定高速的服务。
通过以上三种方式,结合天启代理优质稳定的代理IP资源,可以满足不同场景下的业务需求。选择合适的技术方案,能够有效提升开发效率和业务成功率。


