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的gevent框架的入门教程
Apr 29 Python
Python中的zipfile模块使用详解
Jun 25 Python
Python使用Scrapy保存控制台信息到文本解析
Dec 27 Python
Python机器学习算法之k均值聚类(k-means)
Feb 23 Python
详解python实现交叉验证法与留出法
Jul 11 Python
python UDP(udp)协议发送和接收的实例
Jul 22 Python
python笔记_将循环内容在一行输出的方法
Aug 08 Python
Python 处理文件的几种方式
Aug 23 Python
解决python有时候import不了当前的包问题
Aug 28 Python
如何使用Python脚本实现文件拷贝
Nov 20 Python
pycharm如何实现跨目录调用文件
Feb 28 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
Django路由层如何获取正确的url
Jul 15 #Python
Python实现排序方法常见的四种
Jul 15 #Python
手把手教你使用TensorFlow2实现RNN
一篇文章弄懂Python关键字、标识符和变量
python开发飞机大战游戏
详解Python中下划线的5种含义
Python操作CSV格式文件的方法大全
You might like
使用eAccelerator加密PHP程序
2008/10/03 PHP
深入理解curl类,可用于模拟get,post和curl下载
2013/06/08 PHP
php实现的简易扫雷游戏实例
2015/07/09 PHP
php实现微信公众号主动推送消息
2015/12/31 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
thinkphp3.x中display方法及show方法的用法实例
2016/05/19 PHP
PHP使用PHPExcel实现批量上传到数据库的方法
2017/06/08 PHP
多广告投放代码 推荐
2006/11/13 Javascript
同一个表单 根据要求递交到不同页面的实现方法小结
2009/08/05 Javascript
ajax中get和post的说明及使用与区别
2012/12/23 Javascript
JS对话框_JS模态对话框showModalDialog用法总结
2014/01/11 Javascript
JavaScript计算某一天是星期几的方法
2015/08/05 Javascript
node.js实现爬虫教程
2020/08/25 Javascript
jquery制做精致的倒计时特效
2016/06/13 Javascript
JavaScript中定时控制Throttle、Debounce和Immediate详解
2016/11/17 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
JavaScript中的编码和解码函数
2017/02/15 Javascript
NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法
2018/10/17 NodeJs
webpack中如何加载静态文件的方法步骤
2019/05/18 Javascript
JavaScript变量作用域及内存问题实例分析
2019/06/10 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
layer.confirm()右边按钮实现href的例子
2019/09/27 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
简单了解Python中的几种函数
2017/11/03 Python
Python中super函数的用法
2017/11/17 Python
使用Python制作微信跳一跳辅助
2018/01/31 Python
python3+PyQt5+Qt Designer实现扩展对话框
2018/04/20 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
CSS3实现文本垂直排列的方法
2018/07/10 HTML / CSS
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
北美女性服装零售连锁店:maurices
2019/06/12 全球购物
解决python 输出到csv 出现多空行的情况
2021/03/24 Python
小学生美德少年事迹
2014/02/02 职场文书
MySQL中的引号和反引号的区别与用法详解
2021/10/24 MySQL