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 相关文章推荐
PHP魔术方法__ISSET、__UNSET使用实例
Nov 25 Python
Python脚本实现虾米网签到功能
Apr 12 Python
Python使用PDFMiner解析PDF代码实例
Mar 27 Python
正确理解python中的关键字“with”与上下文管理器
Apr 21 Python
python的变量与赋值详细分析
Nov 08 Python
Python使用ffmpy将amr格式的音频转化为mp3格式的例子
Aug 08 Python
Django实现文件上传下载
Oct 06 Python
关于Python 常用获取元素 Driver 总结
Nov 24 Python
python 实现人和电脑猜拳的示例代码
Mar 02 Python
python 偷懒技巧——使用 keyboard 录制键盘事件
Sep 21 Python
彻底解决Python包下载慢问题
Nov 15 Python
pytorch 把图片数据转化成tensor的操作
Mar 04 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
Win2000+Apache+MySql+PHP4+PERL安装使用小结
2006/10/09 PHP
ecshop 2.72如何修改后台访问地址
2015/03/03 PHP
Django中的cookie与session操作实例代码
2017/08/17 PHP
Js+Dhtml:WEB程序员简易开发工具包(预先体验版)
2006/11/07 Javascript
JQUERY CHECKBOX全选,取消全选,反选方法三
2008/08/30 Javascript
基于jquery的文本框与autocomplete结合使用(asp.net+json)
2012/05/30 Javascript
jQuery中读取json文件示例代码
2013/05/10 Javascript
jQuery中常用的遍历函数用法实例总结
2015/09/01 Javascript
javascript动画之模拟拖拽效果篇
2016/09/26 Javascript
jQuery模拟实现的select点击选择效果【附demo源码下载】
2016/11/09 Javascript
简单谈谈ES6的六个小特性
2016/11/18 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
nodejs连接mysql数据库简单封装示例-mysql模块
2017/04/10 NodeJs
jquery版轮播图效果和extend扩展
2017/07/18 jQuery
vue多种弹框的弹出形式的示例代码
2017/09/18 Javascript
Vuejs中使用markdown服务器端渲染的示例
2017/11/22 Javascript
vue-cli监听组件加载完成的方法
2018/09/07 Javascript
vue3.0中的双向数据绑定方法及优缺点
2019/08/01 Javascript
弱类型语言javascript开发中的一些坑实例小结【变量、函数、数组、对象、作用域等】
2019/08/07 Javascript
浅谈如何优雅处理JavaScript异步错误
2019/11/12 Javascript
python入门教程 python入门神图一张
2018/03/05 Python
Python matplotlib学习笔记之坐标轴范围
2019/06/28 Python
Python Django 命名空间模式的实现
2019/08/09 Python
python实现宿舍管理系统
2019/11/22 Python
Python新手如何进行闭包时绑定变量操作
2020/05/29 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
2020/06/04 Python
西班牙网上书店:Casa del Libro
2016/11/01 全球购物
最便宜促销价格订机票:Airpaz(总部设在印尼,支持中文)
2018/11/13 全球购物
监理员的岗位职责
2013/11/13 职场文书
信息专业个人的自我评价
2013/12/27 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
教师应聘自荐信范文
2014/03/14 职场文书
社区端午节活动总结
2015/02/11 职场文书
欠条范文
2015/07/03 职场文书
安全主题班会教案
2015/08/12 职场文书
《亲亲我的妈妈》观后感(3篇)
2019/09/26 职场文书