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原始字符串(raw strings)用法实例
Oct 13 Python
Python 闭包的使用方法
Sep 07 Python
Python返回数组/List长度的实例
Jun 23 Python
Python实现的txt文件去重功能示例
Jul 07 Python
python进行TCP端口扫描的实现
Dec 21 Python
使用 Python 快速实现 HTTP 和 FTP 服务器的方法
Jul 22 Python
python实现井字棋小游戏
Mar 04 Python
Python reversed函数及使用方法解析
Mar 17 Python
将不规则的Python多维数组拉平到一维的方法实现
Jan 11 Python
python爬虫--selenium模块
Mar 31 Python
Python办公自动化PPT批量转换操作
Sep 15 Python
Python学习之迭代器详解
Apr 01 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图形计数器程序显示网站用户浏览量
2016/07/20 PHP
Jquery公告滚动+AJAX后台得到数据
2011/04/14 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
仿新浪微博登陆邮箱提示效果的js代码
2013/08/02 Javascript
jquery 新建的元素事件绑定问题解决方案
2014/06/12 Javascript
火狐下input焦点无法重复获取问题的解决方法
2014/06/16 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
jQuery实现仿美橙互联两级导航菜单的方法
2015/03/09 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
JavaScript+Java实现HTML页面转为PDF文件保存的方法
2016/05/30 Javascript
jQuery EasyUI编辑DataGrid用combobox实现多级联动
2016/08/29 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
Bootstrap栅格系统学习笔记
2016/11/25 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
jQuery插件HighCharts实现的2D对数饼图效果示例【附demo源码下载】
2017/03/09 Javascript
layui导航栏实现代码
2017/05/19 Javascript
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
JS实现的input选择图片本地预览功能示例
2018/08/29 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
微信小程序实现打开并下载服务器上面的pdf文件到手机
2019/09/20 Javascript
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
python抓取网页中链接的静态图片
2018/01/29 Python
Python基于最小二乘法实现曲线拟合示例
2018/06/14 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
python3实现mysql导出excel的方法
2019/07/31 Python
Python中私有属性的定义方式
2020/03/05 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
matplotlib相关系统目录获取方式小结
2021/02/03 Python
关于廉洁的广播稿
2014/01/30 职场文书
服务之星事迹材料
2014/05/03 职场文书
个人授权委托书
2014/09/15 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
农民工工资保障承诺书
2015/05/04 职场文书
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
2021/11/11 Python