#
#author:wuhao
#
import urllib.requestfrom http import cookiejar
import xlrd
import threading #有效的代理,可添加一个全局变量用于存储,然后保存到文件
#这里由于可行的代理IP太少,就未保存至本地
def Validate_proxy(url,proxy): opener.add_handler(urllib.request.ProxyHandler(proxy),lock)
try:
opener.open(url,timeout=3)
     lock.acquire()
for key,value in proxy.items():
print(value+" has successed")
     lock.release()
except:
     lock.acquire()
for key,value in proxy.items():
print(value+" has failed")
     lock.release()
#获取代理转换为{“http":"http://ip:port"}格式
def getProxy(ip,port):
global index
proxy={"http":"http://"+ip[index]+":"+port[index]}
index += 1
return proxy

#从excel中读取数据
def GetData():
#打开xls
data=xlrd.open_workbook("proxy.xls")
#获取工作表
table=data.sheets()[0]
#用于存储代理IP 和 端口
proxy_ip=[]
proxy_port=[]
#获取行数
row=table.nrows
#循环写入IP和端口
for line in range(1,row):
if table.row_values(line)[0]!="" and table.row_values(line)[1]!="":
proxy_ip.append(table.row_values(line)[0])
proxy_port.append(table.row_values(line)[1])
return proxy_ip,proxy_port if __name__=="__main__": proxy_ip=GetData()[0]
proxy_port=GetData()[1] # 全局变量
index =   #用于测试的网站,可以查看IP
url="http://1212.ip138.com/ic.asp"
cookie=cookiejar.CookieJar()
opener=urllib.request.build_opener(urllib.request.HTTPCookieProcessor(cookie))
   lock=threading.Lock()
while index!=proxy_ip.__len__():
      
t1=threading.Thread(target=Validate_proxy,args=(url,getProxy(proxy_ip,proxy_port),lock))
    
t1.start()                                                                           #欢迎大家评论指导

验证代理IP的更多相关文章

  1. 【原创】验证代理IP是否有用

    /// <summary> /// 验证代理IP是否有用 /// </summary> /// <param name="ip">IP地址< ...

  2. Python 快速验证代理IP是否有效

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

  3. Java 验证代理ip

    原文地址:http://www.cnblogs.com/junrong624/p/5416503.html 1 import java.io.IOException; import java.io.I ...

  4. c# 快速验证代理IP是否有用

    public void yanzhen(string str, int port) { WebProxy proxyObject = new WebProxy(str, port);//str为IP地 ...

  5. 如何验证代理ip的正确性

    python requests 使用代理的话: proxy_list = ["aabbcc.aabbcc.169.aabbcc:8080", ] ip_p = random.cho ...

  6. python验证代理IP

    接上一篇保存的IP地址,进行验证 # -*- coding: utf-8 -*- import requests from threading import Thread import threadi ...

  7. 验证代理ip是否可用

    改编自:http://www.jianshu.com/p/588241a313e7 # _*_ coding:utf-8 _*_ import urllib2 import re class Test ...

  8. python爬虫成长之路(二):抓取代理IP并多线程验证

    上回说到,突破反爬虫限制的方法之一就是多用几个代理IP,但前提是我们得拥有有效的代理IP,下面我们来介绍抓取代理IP并多线程快速验证其有效性的过程. 一.抓取代理IP 提供免费代理IP的网站还挺多的, ...

  9. 爬虫爬取代理IP池及代理IP的验证

    最近项目内容需要引入代理IP去爬取内容. 为了项目持续运行,需要不断构造.维护.验证代理IP. 为了绕过服务端对IP 和 频率的限制,为了阻止服务端获取真正的主机IP. 一.服务器如何获取客户端IP ...

随机推荐

  1. 团队作业4——第一次项目冲刺(Alpha版本)4.26

    一.当天站立式会议照片 本次会议主要内容:汇报工作进度,根据完成情况调整进度,分配各自接口编写任务. 二.每个人的工作 三.燃尽图 横坐标:工作日,以天为单位,一共七天,代表着Alpha冲刺阶段的时间 ...

  2. 个人作业3--------个人总结(Alpha版本)

    1.问题 从第一次写博客开始,就开始意识到自己所犯的错误了,助教提醒命名规范的问题,还给了Java编码规范的链接,让自己以后能注意到这些问题. 对设计的需求分析需要团队一起,一开始分配任务是给个人分配 ...

  3. 201521145048《Java程序设计》第4周学习总结

    1. 本章学习总结 学会了如何去设计一个类,尽量用private修饰属性,public修饰方法. 了解继承的目的. 了解继承和多态的关系. 了解关键字extends super final overr ...

  4. java课程设计---计算器(201521123020 邱伟达)

    1.团队课程设计博客链接 http://www.cnblogs.com/br0823/p/7064407.html 2.个人负责模板或任务说明 1.初始化按键 2.实现加减乘除开方乘方等运算 3.每个 ...

  5. 浅谈IT技术女转战微电商初体验

    今天闲来无事,突然想翻看下之前写的技术博客,很是意外,居然那么多阅读量,于是想想做微商也有一段时间了,决定写写初入微商的初体验. 先自我介绍一下,本人是一名理工女,做IT行业的,这个行业也许有人了解, ...

  6. java 如何将方法作为传参--多态

    在前段时研究智能算法时,发现如果使用java进行实现的话,往往具体实现过程差不多,但是适应值函数却根据 研究对象的不同发生很大的改变,这样对代码的维护产生很大的阻碍,于是产生的一个疑问:可不可以将适 ...

  7. Bit Byte WORD DWORD的区别和联系

    typedef unsigned short WORD; 16位短整数,可以表示0-65535之间的整数 而char是8位. int和机器类型有关.如16位机,就表示16位.32位机就表示32位 基本 ...

  8. 最接近原生APP体验的高性能前端框架-MUI

      前  言 轻量,原生UI,流畅体验,是MUI的三个特征.   1. 新手指南 快速体验 1. 下载Hello mui App 下载已打包好的Hello mui 手机app,直接在手机上体验mui的 ...

  9. Conscription poj3723(最大生成树)

    Conscription Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 6870   Accepted: 2361 Desc ...

  10. 126邮箱发送邮件python实现

    126邮箱发送邮件python实现 from email.mime.text import MIMEText from email.utils import formataddr import smt ...