python检测代理ip是否有效问题

 更新时间:2023年08月12日 09:29:48   作者:小胖_@  
这篇文章主要介绍了python检测代理ip是否有效问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

python检测代理ip是否有效

测试环境

python3.6 、window10系统

测试方法

第一种

  • 使用requests模块。
  • 使用requests.get() 发请求,根据其返回的网页内容进行判断,代理ip是否有效。
import telnetlib
try:
    telnetlib.Telnet(ip, port, timeout=3)
    	print("代理IP有效!")
except:
        print("代理IP无效!")
  • 缺点:虽然可以检测代理ip是否有效,但是该方法只能用于检测少量的代理ip,原因是该方法检测速度比较慢,主要耗时的是发请求这一过程。(可以使用)

第二种

  • telnet 方法。
import telnetlibtry:    telnetlib.Telnet(ip, port, timeout=3)    print("代理IP有效!")except:        print("代理IP无效!")

缺点:虽然该方法可以比较快速的验证,但是经测试发现一些代理ip可以测试通过,但实际上代理ip仍然无效。(不推荐使用)

第三种

利用的http://icanhazip.com/返回的IP进行校验,如返回的是代理池的IP,说明代理有效,否则实际代理无效

def check_proxy(ip, port):    &#34;&#34;&#34;第二种&#xff1a;&#34;&#34;&#34;    try:        # 设置重连次数        requests.adapters.DEFAULT_RETRIES &#61; 3        # IP &#61; random.choice(IPAgents)        proxy &#61; f&#34;http://{<!-- -->ip}:{<!-- -->port}&#34;        # thisIP &#61; &#34;&#34;.join(IP.split(&#34;:&#34;)[0:1])        # print(thisIP)        res &#61; requests.get(url&#61;&#34;http://icanhazip.com/&#34;, timeout&#61;2, proxies&#61;{<!-- -->&#34;http&#34;: proxy})        proxyIP &#61; res.text        if (proxyIP &#61;&#61; proxy):            print(&#34;代理IP:&#39;&#34; &#43; proxyIP &#43; &#34;&#39;有效&#xff01;&#34;)            return True        else:            print(&#34;2代理IP无效&#xff01;&#34;)            return False    except:        print(&#34;1代理IP无效&#xff01;&#34;)        return Falsedef check_proxy(ip, port):
    """第二种:"""
    try:
        # 设置重连次数
        requests.adapters.DEFAULT_RETRIES = 3
        # IP = random.choice(IPAgents)
        proxy = f"http://{ip}:{port}"
        # thisIP = "".join(IP.split(":")[0:1])
        # print(thisIP)
        res = requests.get(url="http://icanhazip.com/", timeout=2, proxies={"http": proxy})
        proxyIP = res.text
        if (proxyIP == proxy):
            print("代理IP:'" + proxyIP + "'有效!")
            return True
        else:
            print("2代理IP无效!")
            return False
    except:
        print("1代理IP无效!")
        return False

推荐使用。

python批量检测IP代理是否可用

首先,我们需要导入必要的库:

import requests
import time 

然后,我们可以定义一个函数来检测代理是否可用:

def check_proxy(proxy):
    # 使用代理发起请求,如果返回状态码为200,说明代理可用
    try:
        # 这里替换为你要请求的目标网站
        response = requests.get('http://www.baidu.com', proxies={"http": proxy, "https": proxy}, timeout=5)
        if response.status_code == 200:
            return True
    except Exception:
        pass
    return False

接下来,我们可以读取包含代理的文本文件,并将可用的代理写入另一个文件中:

# 读取代理列表
with open('proxies.txt', 'r') as f:
    proxy_list = f.read().splitlines()
# 创建用于保存可用代理的列表
valid_proxies = []
# 遍历代理列表,检测代理是否可用
for proxy in proxy_list:
    if check_proxy(proxy):
        valid_proxies.append(proxy)
# 将可用代理写入文件
with open('valid_proxies.txt', 'w') as f:
    for proxy in valid_proxies:
        f.write(proxy + '\n')

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python文件时间操作步骤代码详解

    Python文件时间操作步骤代码详解

    这篇文章主要介绍了Python文件时间操作步骤代码详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-04-04
  • Python中函数的用法实例教程

    Python中函数的用法实例教程

    这篇文章主要介绍了Python中函数的用法,以数值计算的实例方式讲述了Python程序设计中函数的功能机抽象化特点,需要的朋友可以参考下
    2014-09-09
  • 通过底层源码理解YOLOv5的Backbone

    通过底层源码理解YOLOv5的Backbone

    yolov5的特征提取网络兼顾速度与精度,将PAN与PFN深度融合,对不同尺度鲁棒性强,可以即插即用,后接不同的检测器,下面这篇文章主要给大家介绍了关于如何通过底层源码理解YOLOv5的Backbone的相关资料,需要的朋友可以参考下
    2022-05-05
  • Python自动操作神器PyAutoGUI的使用教程

    Python自动操作神器PyAutoGUI的使用教程

    这篇文章主要是想和大家来聊一聊Python如何利用自动操作 GUI 神器——PyAutoGUI在桌面实现自动化操作,感兴趣的小伙伴可以了解一下
    2022-06-06
  • 使用python实现一个浏览器自动化的脚本

    使用python实现一个浏览器自动化的脚本

    最近工作中有这样一个需求:客户反馈在浏览器操作过程中,重复流程操作太频繁,能不能让浏览器自动操作完成?所以本文给大家介绍了如何使用python实现一个浏览器自动化的脚本,感兴趣的朋友可以参考下
    2024-04-04
  • python实现汉诺塔方法汇总

    python实现汉诺塔方法汇总

    本文给大家汇总了几种使用Python结合递归算法实现汉诺塔的方法,非常的简单实用,对大家学习Python很有帮助,希望大家能够喜欢
    2016-07-07
  • python生成器的使用方法

    python生成器的使用方法

    这篇文章主要介绍了什么是生成器,生成器如何使用,下文用例子说明了怎么使用生成器
    2013-11-11
  • Python安装及建立虚拟环境的完整步骤

    Python安装及建立虚拟环境的完整步骤

    在使用 Python 开发时,建议在开发环境和生产环境下都使用虚拟环境来管理项目的依赖,下面这篇文章主要给大家介绍了关于Python安装及建立虚拟环境的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • Django发送邮件功能实例详解

    Django发送邮件功能实例详解

    在本篇文章里小编给大家整理了关于Django发送邮件功能的详细内容,有需要的朋友们可以参考学习下。
    2019-09-09
  • Python中的错误处理与调试技巧分享

    Python中的错误处理与调试技巧分享

    在软件开发过程中,错误是不可避免的,无论是在开发初期还是在项目后期,程序都可能会遇到各种各样的错误,本文将深入探讨 Python 中的错误处理机制、常见错误类型及其处理方法,并介绍一些实用的调试技巧,以提高开发效率和代码质量,需要的朋友可以参考下
    2025-01-01

最新评论