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装饰器使用方法实例
Nov 21 Python
python实现在字符串中查找子字符串的方法
Jul 11 Python
详解Python的Django框架中的Cookie相关处理
Jul 22 Python
Python 通过URL打开图片实例详解
Jun 01 Python
解决python3中解压zip文件是文件名乱码的问题
Mar 22 Python
numpy找出array中的最大值,最小值实例
Apr 03 Python
Python实现识别图片内容的方法分析
Jul 11 Python
Python比较配置文件的方法实例详解
Jun 06 Python
Python 获取命令行参数内容及参数个数的实例
Dec 20 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
Feb 12 Python
Pytorch高阶OP操作where,gather原理
Apr 30 Python
java关于string最常出现的面试题整理
Jan 18 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
基于PHP给大家讲解防刷票的一些技巧
2015/11/18 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
jQuery $.each的用法说明
2010/03/22 Javascript
date.parse在IE和FF中的区别
2010/07/29 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
JSON序列化与解析原生JS方法且IE6和chrome测试通过
2013/09/05 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
原生js和jQuery写的网页选项卡特效对比
2015/04/27 Javascript
JavaScript入门基础
2015/08/12 Javascript
javascript自定义滚动条实现代码
2020/04/20 Javascript
AngularJS中的$watch(),$digest()和$apply()区分
2016/04/04 Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
2016/05/12 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
js中toString()和String()区别详解
2017/03/23 Javascript
JS+Ajax实现百度智能搜索框
2017/08/04 Javascript
Vue 动态设置路由参数的案例分析
2018/04/24 Javascript
vue 组件的封装之基于axios的ajax请求方法
2018/08/11 Javascript
vue中引用swiper轮播插件的教程详解
2018/08/16 Javascript
用原生 JS 实现 innerHTML 功能实例详解
2019/04/03 Javascript
通过实例学习React中事件节流防抖
2019/06/17 Javascript
jquery制作的移动端购物车效果完整示例
2020/02/24 jQuery
Vue 实现对quill-editor组件中的工具栏添加title
2020/08/03 Javascript
python动态网页批量爬取
2016/02/14 Python
Python2实现的图片文本识别功能详解
2018/07/11 Python
django中使用POST方法获取POST数据
2019/08/20 Python
python3正则模块re的使用方法详解
2020/02/11 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
Vuori官网:运动服装的终级表现
2021/01/27 全球购物
优秀部门获奖感言
2014/02/14 职场文书
《蜗牛》教学反思
2014/02/18 职场文书
《雷雨》教学反思
2014/02/20 职场文书
大学生英语演讲稿
2014/04/24 职场文书
教师批评与自我批评总结
2014/10/16 职场文书
药房管理制度范本
2015/08/06 职场文书
2017新年晚会开幕词
2016/03/03 职场文书
浅谈如何提高PHP代码质量之单元测试
2021/05/28 PHP