Python 快速验证代理IP是否有效的方法实现


Posted in Python onJuly 15, 2021

有时候,我们需要用到代理IP,比如在爬虫的时候,但是得到了IP之后,可能不知道怎么验证这些IP是不是有效的,这时候我们可以使用Python携带该IP来模拟访问某一个网站,如果多次未成功访问,则说明这个代理是无效的。

代码如下:

import requests
import random
import time

http_ip = [
    '118.163.13.200:8080',
    '222.223.182.66:8000',
    '51.158.186.242:8811',
    '171.37.79.129:9797',
    '139.255.123.194:4550'
]

for i in range(10):
    try:
        ip_proxy = random.choice(http_ip)
        proxy_ip = {
            'http': ip_proxy,
            'https': ip_proxy,
        }
        print('使用代理的IP:', proxy_ip)
        response = requests.get("http://httpbin.org/ip", proxies=proxy_ip).text
        print(response)
        print('当前IP有效')
        time.sleep(2)
    except Exception as e:
        print(e.args[0])
        print('当前IP无效')
        continue

运行结果如下:

使用代理的IP: {'http': '118.163.13.200:8080', 'https': '118.163.13.200:8080'}
HTTPConnectionPool(host='118.163.13.200', port=8080): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000247674F5F88>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')))
当前IP无效
使用代理的IP: {'http': '51.158.186.242:8811', 'https': '51.158.186.242:8811'}
{
  "origin": "51.158.186.242"
}

当前IP有效
使用代理的IP: {'http': '222.223.182.66:8000', 'https': '222.223.182.66:8000'}
{
  "origin": "139.202.62.84, 222.223.182.66"
}

当前IP有效
使用代理的IP: {'http': '51.158.186.242:8811', 'https': '51.158.186.242:8811'}
{
  "origin": "51.158.186.242"
}

当前IP有效
使用代理的IP: {'http': '51.158.186.242:8811', 'https': '51.158.186.242:8811'}
{
  "origin": "51.158.186.242"
}

当前IP有效
使用代理的IP: {'http': '222.223.182.66:8000', 'https': '222.223.182.66:8000'}
HTTPConnectionPool(host='222.223.182.66', port=8000): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000247675067C8>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')))
当前IP无效
使用代理的IP: {'http': '139.255.123.194:4550', 'https': '139.255.123.194:4550'}
HTTPConnectionPool(host='139.255.123.194', port=4550): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x00000247674F55C8>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')))
当前IP无效
使用代理的IP: {'http': '51.158.186.242:8811', 'https': '51.158.186.242:8811'}
{
  "origin": "51.158.186.242"
}

当前IP有效
使用代理的IP: {'http': '51.158.186.242:8811', 'https': '51.158.186.242:8811'}
{
  "origin": "51.158.186.242"
}

当前IP有效
使用代理的IP: {'http': '222.223.182.66:8000', 'https': '222.223.182.66:8000'}
HTTPConnectionPool(host='222.223.182.66', port=8000): Max retries exceeded with url: http://httpbin.org/ip (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPConnection object at 0x0000024767514908>: Failed to establish a new connection: [WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。')))
当前IP无效

到此这篇关于Python 快速验证代理IP是否有效的方法实现的文章就介绍到这了,更多相关Python 验证代理IP是否有效内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python 全文检索引擎详解
Apr 25 Python
一篇文章快速了解Python的GIL
Jan 12 Python
Python切片索引用法示例
May 15 Python
一篇文章搞懂Python的类与对象名称空间
Dec 10 Python
Python最小二乘法矩阵
Jan 02 Python
带你认识Django
Jan 15 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
python socket 聊天室实例代码详解
Nov 14 Python
Pytorch之Variable的用法
Dec 31 Python
Python综合应用名片管理系统案例详解
Jan 03 Python
浅谈keras中loss与val_loss的关系
Jun 22 Python
python 模拟登录B站的示例代码
Dec 15 Python
Django路由层如何获取正确的url
Jul 15 #Python
Python实现排序方法常见的四种
Jul 15 #Python
手把手教你使用TensorFlow2实现RNN
一篇文章弄懂Python关键字、标识符和变量
python开发飞机大战游戏
详解Python中下划线的5种含义
Python操作CSV格式文件的方法大全
You might like
域名和cookie问题(域名后缀)
2012/10/10 PHP
php实现excel中rank函数功能的方法
2015/01/20 PHP
PHP使用array_fill定义多维数组的方法
2015/03/18 PHP
Laravel框架实现发送短信验证功能代码
2016/06/06 PHP
Yii2框架实现登陆添加验证码功能示例
2018/07/12 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
Centos7安装swoole扩展操作示例
2020/03/26 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
Riot.js 快速的JavaScript单元测试框架
2009/11/09 Javascript
通过location.replace禁止浏览器后退防止重复提交
2014/09/04 Javascript
JavaScript数组去重的两种方法推荐
2016/04/05 Javascript
jQuery实现简单倒计时功能的方法
2016/07/04 Javascript
如何用JS判断两个数字的大小
2016/07/21 Javascript
js实现千分符和保留几位小数的简单实例
2016/08/01 Javascript
jQuery的ready方法实现原理分析
2016/10/26 Javascript
javascript中Number的方法小结
2016/11/21 Javascript
利用webstrom调试Vue.js单页面程序的方法教程
2017/06/06 Javascript
JS实现的计数排序与基数排序算法示例
2017/12/04 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
JS对象和字符串之间互换操作实例分析
2019/02/02 Javascript
基于vue通用表单解决方案的思考与分析
2019/03/16 Javascript
javascript定时器的简单应用示例【控制方块移动】
2019/06/17 Javascript
jQuery内容选择器与表单选择器实例分析
2019/06/28 jQuery
[33:23]Secret vs Serenity 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python  连接字符串(join %)
2008/09/06 Python
Python中的类与对象之描述符详解
2015/03/27 Python
在Python中使用正则表达式的方法
2015/08/13 Python
Python实现包含min函数的栈
2016/04/29 Python
Python openpyxl读取单元格字体颜色过程解析
2019/09/03 Python
python模拟预测一下新型冠状病毒肺炎的数据
2020/02/01 Python
keras的load_model实现加载含有参数的自定义模型
2020/06/22 Python
Holland & Barrett爱尔兰:英国领先的健康零售商
2019/03/31 全球购物
2015年售后服务工作总结
2015/04/25 职场文书
2015年秋季运动会广播稿
2015/08/19 职场文书
2016大学生形势与政策心得体会
2016/01/12 职场文书