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 相关文章推荐
go语言计算两个时间的时间差方法
Mar 13 Python
python让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
python清除指定目录内所有文件中script的方法
Jun 30 Python
python3 kmp 字符串匹配的方法
Jul 07 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
详解如何用django实现redirect的几种方法总结
Nov 22 Python
python 用opencv调用训练好的模型进行识别的方法
Dec 07 Python
python执行scp命令拷贝文件及文件夹到远程主机的目录方法
Jul 08 Python
python字典嵌套字典的情况下找到某个key的value详解
Jul 10 Python
Jupyter notebook命令和编辑模式常用快捷键汇总
Nov 17 Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 Python
python 基于opencv操作摄像头
Dec 24 Python
Django路由层如何获取正确的url
Jul 15 #Python
Python实现排序方法常见的四种
Jul 15 #Python
手把手教你使用TensorFlow2实现RNN
一篇文章弄懂Python关键字、标识符和变量
python开发飞机大战游戏
详解Python中下划线的5种含义
Python操作CSV格式文件的方法大全
You might like
PHP开发负载均衡指南
2010/07/17 PHP
PHP面向接口编程 耦合设计模式 简单范例
2011/03/23 PHP
PHP中SESSION使用中的一点经验总结
2012/03/30 PHP
PHP把小数转成整数3种方法
2014/06/30 PHP
php获取本周星期一具体日期的方法
2015/04/20 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
php socket通信简单实现
2016/11/18 PHP
JavaScript 放大镜 移动镜片效果代码
2011/05/09 Javascript
jquery eval解析JSON中的注意点介绍
2013/08/23 Javascript
javascript的创建多行字符串的7种方法
2014/04/29 Javascript
JavaScript中的console.assert()函数介绍
2014/12/29 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
JS实现为排序好的字符串找出重复行的方法
2016/03/02 Javascript
NodeJS与HTML5相结合实现拖拽多个文件上传到服务器的实现方法
2016/07/26 NodeJs
用JavaScript实现让浏览器停止载入页面的方法
2017/01/19 Javascript
详解Angular4中路由Router类的跳转navigate
2017/06/09 Javascript
layui获取选中行数据的实例讲解
2018/08/19 Javascript
[55:45]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第一局
2016/02/28 DOTA
Python脚本实现代码行数统计代码分享
2015/03/10 Python
举例介绍Python中的25个隐藏特性
2015/03/30 Python
python使用多线程不断刷新网页的方法
2015/03/31 Python
Python实现约瑟夫环问题的方法
2016/05/03 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
Python3.7 读取音频根据文件名生成脚本的代码
2020/04/07 Python
Python函数必须先定义,后调用说明(函数调用函数例外)
2020/06/02 Python
python中常用的数据结构介绍
2021/01/12 Python
CSS3媒体查询(Media Queries)介绍
2013/09/12 HTML / CSS
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
怎样让char类型的东西转换成int类型
2013/12/09 面试题
客房服务员岗位职责
2015/02/09 职场文书
三八妇女节致辞
2015/07/31 职场文书
Python爬虫之爬取最新更新的小说网站
2021/05/06 Python
mysql中between的边界,范围说明
2021/06/08 MySQL
Node-Red实现MySQL数据库连接的方法
2021/08/07 MySQL
mysql查找连续出现n次以上的数字
2022/05/11 MySQL