Python3实现并发检验代理池地址的方法


Posted in Python onSeptember 18, 2016

本文实例讲述了Python3实现并发检验代理池地址的方法。分享给大家供大家参考,具体如下:

#encoding=utf-8
#author: walker
#date: 2016-04-14
#summary: 用协程/线程池并发检验代理有效性
import os, sys, time
import requests
from concurrent import futures
cur_dir_fullpath = os.path.dirname(os.path.abspath(__file__))
Headers = {
      'Accept': '*/*',
      'User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; .NET4.0C; .NET4.0E)',
    }
#检验单个代理的有效性
#如果有效,返回该proxy;否则,返回空字符串
def Check(desturl, proxy, feature):
  proxies = {'http': 'http://' + proxy}
  r = None #声明
  exMsg = None
  try:
    r = requests.get(url=desturl, headers=Headers, proxies=proxies, timeout=3)
  except:
    exMsg = '* ' + traceback.format_exc()
    #print(exMsg)
  finally:
    if 'r' in locals() and r:
      r.close()
  if exMsg:
    return ''
  if r.status_code != 200:
    return ''
  if r.text.find(feature) < 0:
    return ''
  return proxy
#输入代理列表(set/list),返回有效代理列表
def GetValidProxyPool(rawProxyPool, desturl, feature):
  validProxyList = list()  #有效代理列表
  pool = futures.ThreadPoolExecutor(8)
  futureList = list()
  for proxy in rawProxyPool:
    futureList.append(pool.submit(Check, desturl, proxy, feature))
  print('\n submit done, waiting for responses\n')
  for future in futures.as_completed(futureList):
    proxy = future.result()
    print('proxy:' + proxy)
    if proxy: #有效代理
      validProxyList.append(proxy)
  print('validProxyList size:' + str(len(validProxyList)))
  return validProxyList
#获取原始代理池
def GetRawProxyPool():
  rawProxyPool = set()
  #通过某种方式获取原始代理池......
  return rawProxyPool
if __name__ == "__main__":
  rawProxyPool = GetRawProxyPool()
  desturl = 'http://...'    #需要通过代理访问的目标地址
  feature = 'xxx'    #目标网页的特征码
  validProxyPool = GetValidProxyPool(rawProxyPool, desturl, feature)

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
haskell实现多线程服务器实例代码
Nov 26 Python
通过C++学习Python
Jan 20 Python
Python实现简单状态框架的方法
Mar 19 Python
介绍Python中的fabs()方法的使用
May 14 Python
Python多进程并发(multiprocessing)用法实例详解
Jun 02 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
Python3.5集合及其常见运算实例详解
May 01 Python
python pandas写入excel文件的方法示例
Jun 25 Python
Python : turtle色彩控制实例详解
Jan 19 Python
django 实现手动存储文件到model的FileField
Mar 30 Python
Django基于客户端下载文件实现方法
Apr 21 Python
有趣的二维码:使用MyQR和qrcode来制作二维码
May 10 Python
Python常见格式化字符串方法小结【百分号与format方法】
Sep 18 #Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
Sep 18 #Python
Python基于pillow判断图片完整性的方法
Sep 18 #Python
Django返回json数据用法示例
Sep 18 #Python
Python中list初始化方法示例
Sep 18 #Python
Python提取网页中超链接的方法
Sep 18 #Python
python解决Fedora解压zip时中文乱码的方法
Sep 18 #Python
You might like
用libTemplate实现静态网页的生成
2006/10/09 PHP
PHP中防止SQL注入攻击和XSS攻击的两个简单方法
2010/04/15 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
PHP模板引擎Smarty之配置文件在模板变量中的使用方法示例
2016/04/11 PHP
phpstudy默认不支持64位php的解决方法
2017/02/20 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
获取css样式表内样式的js函数currentStyle(IE),defaultView(FF)
2011/02/14 Javascript
js的hasownproperty使用示例
2014/03/02 Javascript
JavaScript实现在页面间传值的方法
2015/04/07 Javascript
Bootstrap基础学习
2015/06/16 Javascript
jQuery右侧选项卡焦点图片轮播特效代码分享
2015/09/05 Javascript
Node.js连接postgreSQL并进行数据操作
2016/12/18 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
2017/04/13 Javascript
基于D3.js实现时钟效果
2018/07/17 Javascript
Vue源码学习之关于对Array的数据侦听实现
2019/04/23 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
layui关闭层级、简单监听的实例
2019/09/06 Javascript
uni-app 组件里面获取元素宽高的实现
2019/12/27 Javascript
Python日期操作学习笔记
2008/10/07 Python
wxPython使用系统剪切板的方法
2015/06/16 Python
Python实现在线音乐播放器
2017/03/03 Python
python爬虫之urllib库常用方法用法总结大全
2018/11/14 Python
eclipse创建python项目步骤详解
2019/05/10 Python
Python实现的企业粉丝抽奖功能示例
2019/07/26 Python
pytorch 预训练层的使用方法
2019/08/20 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
2020/01/13 Python
jupyter notebook实现显示行号
2020/04/13 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
用HTML5制作一个简单的弹力球游戏
2015/05/12 HTML / CSS
如何整合JQuery和Prototype
2014/01/31 面试题
优秀毕业生推荐信范文
2014/03/07 职场文书
个人廉洁自律承诺书
2014/03/27 职场文书
最美家庭活动方案
2014/08/31 职场文书
2014机关干部学习“焦裕禄精神”思想汇报
2014/09/19 职场文书
党员自我评议对照检查材料
2014/09/27 职场文书