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 相关文章推荐
python 类详解及简单实例
Mar 24 Python
Python随机读取文件实现实例
May 25 Python
Python实现变量数值交换及判断数组是否含有某个元素的方法
Sep 18 Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 Python
对Python3之进程池与回调函数的实例详解
Jan 22 Python
python 多线程串行和并行的实例
Feb 22 Python
python字符串分割及字符串的一些常规方法
Jul 24 Python
检测tensorflow是否使用gpu进行计算的方式
Feb 03 Python
python自定义函数def的应用详解
Jun 03 Python
PyCharm中配置PySide2的图文教程
Jun 18 Python
python实现sm2和sm4国密(国家商用密码)算法的示例
Sep 26 Python
在python中对于bool布尔值的取反操作
Dec 11 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
PHP实现递归目录的5种方法
2016/10/27 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
用js实现键盘方向键翻页功能的代码
2007/06/03 Javascript
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
jQuery 1.8 Release版本发布了
2012/08/14 Javascript
javascript实现判断鼠标的状态
2015/07/10 Javascript
AngularJS Module方法详解
2015/12/08 Javascript
基于jquery实现即时检查格式是否正确的表单
2016/05/06 Javascript
vue 页面加载进度条组件实例
2018/02/05 Javascript
Bootstrap table表格初始化表格数据的方法
2018/07/25 Javascript
express + jwt + postMan验证实现持久化登录
2019/06/05 Javascript
vue radio单选框,获取当前项(每一项)的value值操作
2020/09/10 Javascript
Openlayers实现地图全屏显示
2020/09/28 Javascript
Javascript实现单选框效果
2020/12/09 Javascript
原生JavaScript实现幻灯片效果
2021/02/19 Javascript
为Python的web框架编写前端模版的教程
2015/04/30 Python
Python中内置的日志模块logging用法详解
2016/07/12 Python
用python打印菱形的实操方法和代码
2019/06/25 Python
python django下载大的csv文件实现方法分析
2019/07/19 Python
Django 外键的使用方法详解
2019/07/19 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
解决python虚拟环境切换无效的问题
2020/04/30 Python
详细分析Python垃圾回收机制
2020/07/01 Python
面向新手解析python Beautiful Soup基本用法
2020/07/11 Python
结合CSS3的布局新特征谈谈常见布局方法
2016/01/22 HTML / CSS
HTML5实现视频直播功能思路详解
2017/11/16 HTML / CSS
世界上最大的街头服饰网站:Karmaloop
2017/02/04 全球购物
IWOOT美国:新奇的小玩意
2018/04/27 全球购物
国家励志奖学金获奖感言
2014/01/09 职场文书
社区两委对照检查材料
2014/08/23 职场文书
2014年大学生预备党员思想汇报1000字
2014/09/13 职场文书
学生会干部自我鉴定2014
2014/09/18 职场文书
班主任经验交流材料
2014/12/16 职场文书
2015小学语文教师个人工作总结
2015/05/20 职场文书
老人院义工活动感想
2015/08/07 职场文书