DC娱乐网

Python 批量获取代理 IP:精简代码直接用

Python中批量获取并设置HTTP代理IP,可解决爬虫IP限制问题。以下是精简实用的实现方案,基于requests库,

Python中批量获取并设置HTTP代理IP,可解决爬虫IP限制问题。以下是精简实用的实现方案,基于requests库,易上手、可直接使用。

HTTP代理

前置准备:安装依赖 pip install requests,替换代理池API地址(支持开源或第三方代理服务)。

完整精简代码:

import requests

import random

# 配置(直接修改适配你的代理池)

PROXY_POOL_URL = "http://localhost:8000/get"  # 代理池API

TARGET_COUNT = 10  # 批量获取数量

TIMEOUT = 10  # 超时时间

def get_proxies():

"""获取并筛选可用代理"""

try:

resp = requests.get(PROXY_POOL_URL, timeout=TIMEOUT)

resp.raise_for_status()

proxy_list = resp.json()

if not isinstance(proxy_list, list) or not proxy_list:

print("代理池数据异常")

return []

# 随机选择指定数量,不足则取全部

return random.sample(proxy_list, min(TARGET_COUNT, len(proxy_list)))

except Exception as e:

print(f"获取代理失败:{e}")

return []

def use_proxies(proxies):

"""测试并使用代理"""

valid = []

for proxy in proxies:

try:

resp = requests.get("http://www.example.com",

proxies={"http": proxy, "https": proxy},

timeout=TIMEOUT, allow_redirects=False)

if 200 <= resp.status_code < 300:

print(f"代理{proxy}可用")

valid.append(proxy)

except:

print(f"代理{proxy}不可用")

return valid

if __name__ == "__main__":

proxies = get_proxies()

if proxies:

valid_proxies = use_proxies(proxies)

print(f"最终可用代理:{valid_proxies}")

else:

print("无可用代理")

核心说明:代码整合核心功能,自动处理代理数量不足、数据格式异常等问题,筛选可用代理。使用时替换PROXY_POOL_URL即可,若代理需验证,可修改代理格式为http://user:pass@ip:port。