Python脚本在Linux中自动检测代理可用性

57 阅读1分钟

huake_00200_.jpg在Linux环境下,通过Python脚本自动检测代理服务器的可用性,可有效提升网络请求的稳定性。以下是一个完整的解决方案,包含代理验证、性能测试及日志记录功能。

一、核心实现代码****

python

 import requests
 import time
 from datetime import datetime
 import logging
  
 # 配置日志
 logging.basicConfig(
 filename='proxy_checker.log',
 level=logging.INFO,
 format='%(asctime)s - %(levelname)s - %(message)s'
 )
  
 def check_proxy(proxy_url, test_url="httpbin.org/ip", timeout=5):
 """
 检测代理可用性
 :param proxy_url: 代理地址(格式:http://ip:porthttp://user:pass@ip:port)
 :param test_url: 测试目标URL
 :param timeout: 超时时间(秒)
 :return: (bool, float, str) 可用性、响应时间、错误信息
 """
 proxies = {"http": proxy_url, "https": proxy_url}
 start_time = time.time()
  
 try:
 response = requests.get(test_url, proxies=proxies, timeout=timeout)
 if response.status_code == 200:
 elapsed = time.time() - start_time
 logging.info(f"代理可用: {proxy_url} 响应时间: {elapsed:.2f}秒")
 return True, elapsed, "Success"
 except Exception as e:
 error_msg = str(e)
 logging.warning(f"代理不可用: {proxy_url} 错误: {error_msg}")
  
 return False, None, error_msg
  
 if name == "main":
 # 代理列表(可从文件或数据库动态加载)
 proxies = [
 "http://192.168.1.100:8080",
 "http://user:pass@192.168.1.101:3128"
 ]
  
 # 批量检测
 for proxy in proxies:
 is_available, latency, error = check_proxy(proxy)
 print(f"代理: {proxy}可用: {is_available}延迟: {latency}秒错误: {error}")

通过此脚本,Linux系统管理员可快速搭建自动化代理检测系统,确保网络请求始终通过最优代理路径,适用于爬虫、数据采集等需要代理切换的场景。