验证代理IP
#
#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的更多相关文章
- 【原创】验证代理IP是否有用
/// <summary> /// 验证代理IP是否有用 /// </summary> /// <param name="ip">IP地址< ...
- Python 快速验证代理IP是否有效
有时候,我们需要用到代理IP,比如在爬虫的时候,但是得到了IP之后,可能不知道怎么验证这些IP是不是有效的,这时候我们可以使用Python携带该IP来模拟访问某一个网站,如果多次未成功访问,则说明这个 ...
- Java 验证代理ip
原文地址:http://www.cnblogs.com/junrong624/p/5416503.html 1 import java.io.IOException; import java.io.I ...
- c# 快速验证代理IP是否有用
public void yanzhen(string str, int port) { WebProxy proxyObject = new WebProxy(str, port);//str为IP地 ...
- 如何验证代理ip的正确性
python requests 使用代理的话: proxy_list = ["aabbcc.aabbcc.169.aabbcc:8080", ] ip_p = random.cho ...
- python验证代理IP
接上一篇保存的IP地址,进行验证 # -*- coding: utf-8 -*- import requests from threading import Thread import threadi ...
- 验证代理ip是否可用
改编自:http://www.jianshu.com/p/588241a313e7 # _*_ coding:utf-8 _*_ import urllib2 import re class Test ...
- python爬虫成长之路(二):抓取代理IP并多线程验证
上回说到,突破反爬虫限制的方法之一就是多用几个代理IP,但前提是我们得拥有有效的代理IP,下面我们来介绍抓取代理IP并多线程快速验证其有效性的过程. 一.抓取代理IP 提供免费代理IP的网站还挺多的, ...
- 爬虫爬取代理IP池及代理IP的验证
最近项目内容需要引入代理IP去爬取内容. 为了项目持续运行,需要不断构造.维护.验证代理IP. 为了绕过服务端对IP 和 频率的限制,为了阻止服务端获取真正的主机IP. 一.服务器如何获取客户端IP ...
随机推荐
- Python中os和shutil模块实用方法集锦
Python中os和shutil模块实用方法集锦 类型:转载 时间:2014-05-13 这篇文章主要介绍了Python中os和shutil模块实用方法集锦,需要的朋友可以参考下 复制代码代码如下: ...
- 201521123002 《Java程序设计》第5周学习总结
1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点. 2. 书面作业 作业参考文件下载 1.代码阅读:Child压缩包内源代码 1.1 com.parent包中Child.java文件能 ...
- 201521123022 《Java程序设计》第三周学习总结
1.本周学习总结 2.书面作业 Q1.代码阅读 public class Test1 { private int i = 1;//这行不能修改 private static int j = 2; pu ...
- python之socket编程------粘包
一.粘包 什么是粘包 只有TCP只有粘包现象,UDP永远不会粘包 所谓粘包问题主要还是因为接收方不知道之间的界限,不知道一次性提取多少字节的数据所造成的 两种情况发生粘包: 1.发送端需要等缓冲区满才 ...
- Mybatis源码解析-DynamicSqlSource和RawSqlSource的区别
XMLLanguageDriver是ibatis的默认解析sql节点帮助类,其中的方法其会调用生成DynamicSqlSource和RawSqlSource这两个帮助类,本文将对此作下简单的简析 应用 ...
- NET_NET深入体验与实战 第一章 .NET你知道 1.1什么是 .NET
1.1什么是 .NET 1.微软定义:Microsft.NET 是微软以 Web Service为核心的,支持 信息,人,系统的一组软件产品,技术或者服务. 2.战略和梦想:(1) Microsft ...
- MapReduce极简教程
一个有趣的例子 你想数出一摞牌中有多少张黑桃.直观方式是一张一张检查并且数出有多少张是黑桃? MapReduce方法则是: 给在座的所有玩家中分配这摞牌 让每个玩家数自己手中的牌有几张是黑桃,然后 ...
- 《HiBlogs》重写笔记[1]--从DbContext到依赖注入再到自动注入
本篇文章主要分析DbContext的线程内唯一,然后ASP.NET Core的注入,再到实现自动注入. DbContext为什么要线程内唯一(非线程安全) 我们在使用EF的时候,可能使用相关框架封装过 ...
- 再起航,我的学习笔记之JavaScript设计模式25(迭代器模式)
迭代器模式 概念介绍 迭代器模式(Iterator): 在不暴露对象内部结构的同时,可以顺序地访问聚合对象内部的元素. 迭代器 程序中的循环是一种利器,循环语句也使我们程序开发更简洁高效,但是有时一遍 ...
- WPF控件自适应屏幕
如果说界面设计,那么自适应问题一定无法避免,今天就来分享一下,wpf如何实现自适应,先看一下效果:(文末添加源代码下载) 基本思路就是用 Grid 的网格,进行宽度的自动填充适应, 不过对于 ...