`
desert3
  • 浏览: 2160412 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

http代理测速程序

阅读更多
从网上找到很多代理地址,用来访问目标网站,访问目标网站速度不一(即时本机访问代理很快,通过该代理访问目标网站却可能很慢),就想到写1个代理测速程序,自动找出访问目标网站速度快的代理地址并输出

#! /usr/bin/env python 
# -*- coding: utf-8 -*- 
#@author zcwang3@gmail.com
#@version 2010-10-18 16:47 初始做成

import urllib2
import httplib
import datetime

#目标URL
targetUrl = "http://www.baidu.com"
#取多少次访问速度的平均值
testCount = 10
proxyAddrSpeedList = []
def openUrl(proxyAddr):
    totalS = 0
    #测试,取10次平均值
    for i in range(testCount):
        try:
            starttime = datetime.datetime.now()
            #使用无验证的代理
            proxy_handler = urllib2.ProxyHandler({"http": proxyAddr})
            opener = urllib2.build_opener(proxy_handler)
            opener.open(targetUrl)
            endtime = datetime.datetime.now()
            print str(endtime - starttime) + "|" + proxyAddr
            totalS += (endtime - starttime).seconds * 1000 + (endtime - starttime).microseconds
        except urllib2.URLError,e:
            #输出错误信息,如果代理一直出错,该代理应该废弃
            print proxyAddr + "|" + str(e)
            if (str(e) == "<urlopen error (10054, 'Connection reset by peer')>" 
                or str(e) == "<urlopen error (10060, 'Operation timed out')>"
                or str(e) == "<urlopen error (10061, 'Connection refused')>"
                or str(e) == "<urlopen error (10065, 'No route to host')>"
                or str(e) == "HTTP Error 502: Bad Gateway"
                or str(e) == "HTTP Error 503: Service Unavailable"
                or str(e) == "HTTP Error 504: Gateway Time-out"
                or str(e) == "HTTP Error 404: Not Found"
                ):
                #出错就重试
                openUrl(proxyAddr)
                return
        except httplib.BadStatusLine, e:
            print proxyAddr + "|" + "httplib.BadStatusLine"
            #出错就重试
            openUrl(proxyAddr)
            return
    print totalS
    #输出10次的平均值,单位秒  
    proxyAddrSpeedList.append(str(totalS / testCount / 1000000.) + u"秒|" + proxyAddr)

#测试的代理地址列表,逗号分隔
proxyAddressArray = "http://218.204.29.110:808,http//58.56.108.35:8080".split(",")
for p in proxyAddressArray:
    openUrl(p)
    print u"已测试地址排序开始"
    tempAddList = []
    tempSpeedList = []
    proxyAddrSpeedList.sort()
    for p1 in proxyAddrSpeedList:
        tempSpeedList.append(p1.split("|")[0])
        tempAddList.append(p1.split("|")[1])
        print p1.split("|")[1]
    print "speed = %s" %(",".join(tempSpeedList))
    #输出:逗号分隔的代理地址
    print "proxyAddressArray = %s" %(",".join(tempAddList))
    print u"已测试地址排序结束"
分享到:
评论

相关推荐

    三种测脉冲测速程序 测速子程序

    在电子工程和自动化领域,测速程序是至关重要的,它们被广泛应用于各种设备,如电机控制、机器人定位、运动控制系统等。本主题聚焦于三种不同的脉冲测速程序,这些程序能够有效地计算出设备的旋转速度或线性速度。...

    电机测速程序的实现很使用 可读性强

    电机测速程序是工业自动化领域中的重要组成部分,它主要用于实时监测和控制电动机的旋转速度。电机的速度控制对于各种机械设备的精度和效率至关重要,尤其是在自动化生产线、机器人、精密仪器等领域。下面将详细介绍...

    基于51单片机的光电编码器测速.zip_51测速程序_saddlegw7_strike4nm_光电编码器_编码器

    本篇将深入探讨51单片机与光电编码器结合实现的测速程序设计,帮助读者更好地理解和应用这一技术。 首先,我们需要了解光电编码器的工作原理。光电编码器通常由光源、光敏元件和编码盘组成。编码盘上刻有不同密度的...

    飞思卡尔智能车测速程序

    自制红外管对射码盘测速程序,基于9S12DG128

    飞思卡尔单片机xs128测速程序

    根据给定的信息,我们可以深入探讨飞思卡尔单片机XS128的测速程序设计。此程序旨在实现对电机或其他设备的速度测量功能,并通过定时器(PIT)中断进行周期性的速度计算。 ### 飞思卡尔单片机XS128简介 飞思卡尔...

    labview 打字测速程序

    labview 打字测速程序 能测试打字的速度

    自行车霍尔测速程序及仿真

    自行车霍尔测速程序及其仿真是一项利用霍尔元件和51单片机技术来实现的自行车速度测量系统。这项技术在现代智能骑行设备中扮演着重要角色,为骑行者提供了实时速度信息,增强了骑行体验。 首先,我们来了解一下霍尔...

    用光电传感器的电机测速程序

    测量电机的速度,同样可以作为测速使用。本程序原理是:在电机上安装个编码盘,通过光电管在转动的编码盘感应出一连串的脉冲,通过单片机计算每秒钟输入脉冲的个数就可以得出电机的转速。

    光电测速程序

    光电测速程序是一种常见的速度测量技术,特别是在自动化和交通监控领域。这种技术主要利用光电对射传感器来检测物体的移动,然后通过计算脉冲信号频率或周期来确定速度。在这个项目中,我们看到一个基于AT89S52...

    stm32霍尔传感器测速程序

    在本项目中,“stm32霍尔传感器测速程序”利用了STM32的定时器捕获功能来精确地测量电机的转速,通过霍尔传感器获取电机的运动信息。 霍尔传感器是一种磁敏传感器,它可以检测磁场的变化,并将其转化为电信号。在...

    pic超声波测速程序机原理图

    本项目基于pic16f877a微控制器实现超声波测速程序,通过解读标题和描述,我们可以深入理解其工作原理和实现过程。 首先,pic16f877a是Microchip公司生产的一款8位单片机,具有丰富的内部资源,如数字输入输出引脚、...

    增量式编码器测速程序.rar

    本"增量式编码器测速程序"主要针对的是"mini512Z型增量式编码器",这是一个小型化设计的编码器,适用于各种需要精确定位和速度测量的应用场景。该编码器通常有两路相位差90度的输出信号A和B,以及一个可选的零脉冲...

    飞思卡尔HCS12智能车测速程序

    根据给定的信息,本文将详细解释“飞思卡尔HCS12智能车测速程序”的核心知识点,包括程序设计思路、关键代码解析以及涉及到的技术原理。 ### 一、飞思卡尔智能车概述 飞思卡尔(Freescale)是一家知名的半导体制造...

    电机测速程序

    电机测速程序是一种用于测量电机旋转速度的软件或硬件系统,尤其关注步进电机的测速。步进电机是精密定位和控制应用中常见的电动机类型,因为它们能够精确地移动固定的角度增量,即“步进”。电机测速程序的设计目的...

    编码器.rar_单片机连接编码器测速程序_编码器与pwm_编码电机

    在本文中,我们将深入探讨如何使用单片机与编码器相结合来实现电机的测速程序,以及编码器与PWM(脉宽调制)信号在这一过程中的作用。首先,我们来理解标题“编码器.rar_单片机连接编码器测速程序_编码器与pwm_编码...

    用单片机设计的测速表源程序

    单片机设计的测速表源程序是一种基于微控制器技术的工程应用,它主要用于测量物体或系统的速度。在工业控制、汽车电子、机器人等领域,测速表是不可或缺的一部分,能够实时提供设备运行的速度信息,有助于优化系统...

    一个小的打字测速程序

    【标题】"一个小的打字测速程序"指的是一个用于测试用户打字速度的应用程序,这类程序通常会显示一段文字或句子,用户需要在限定时间内输入,程序则会计算并显示用户的打字速度。这个程序可能包含了一些基本功能,如...

    霍尔测速程序

    本文将深入探讨一种利用ATmega128单片机和霍尔传感器实现的直流电机测速程序,该程序能够有效地监控电机的运行状态,并将数据实时显示在LCD12864液晶屏幕上。 首先,我们要了解核心组件ATmega128。这是一款高性能、...

    sdf.rar_测速_测速程序_编码器测_编码器测速

    标题中的“sdf.rar_测速_测速程序_编码器测_编码器测速”表明这是一个关于编码器测速的程序,可能包含了一个用于测量编码器速度的C语言源代码。编码器是一种设备,通常在机械设备或自动化系统中用于检测旋转或线性...

    基于STM32F1的霍尔传感器测速程序

    总结起来,"基于STM32F1的霍尔传感器测速程序"涉及了嵌入式系统、微控制器编程、传感器技术以及数据通信等多个方面的知识。通过合理设计和调试,我们可以利用这些技术实现精确、实时的速度测量。在实际项目中,还...

Global site tag (gtag.js) - Google Analytics