Python - Handler代理池

99 阅读1分钟

代码示例


import urllib.request  # _*_coding : utf-8 _*_
import random  # 引入随机模块


url = 'https://www.baidu.com/s?wd=ip'

headers = {
    'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36'
}

# 代理池:假设你已经有一个包含多个代理的池
proxy_pool = [
    'http://49.67.109.216:15600', 
    'http://49.67.109.217:15600',
    'http://49.67.109.218:15600',
    # 更多代理...
]

# 从代理池中随机选择一个代理
proxy = random.choice(proxy_pool)

# 设置代理
proxies = {
    'http': proxy,
    'https': proxy,
}

# 请求对象的定制
request = urllib.request.Request(url=url, headers=headers)

# 设置代理处理器
handler = urllib.request.ProxyHandler(proxies)
opener = urllib.request.build_opener(handler)

# 发送请求并获取响应
try:
    response = opener.open(request)
    content = response.read().decode('utf-8')
    
    # 保存数据到本地
    with open('handler.html', 'w', encoding='utf-8') as f:
        f.write(content)
    
    print("数据已成功保存到 handler.html")
except Exception as e:
    print(f"请求失败: {e}")


代码规范

  • 代理池的构建:你可以使用一个代理池(Proxy Pool),从中随机选择一个代理来发送请求。可以通过从一个代理提供者获取代理(例如,公开的代理池服务或自己搭建的代理池)并存储它们。

  • 选择代理:每次发送请求时,从代理池中随机选择一个代理。

  • 集成代理池:使用 random 模块从代理池中随机选择一个代理,并动态设置代理。