httplib代码:

        urlParseResult = urlparse(url)
host = urlParseResult.hostname
path = urlParseResult.path
conn = httplib.HTTPConnection(host)
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
conn.putheader("Authorization", "Basic %s" % base64string)
conn.endheaders() conn.request("GET", path) try:
with open(localLogFile, "wb") as code1:
with contextlib.closing(conn) as conn:
response = conn.getresponse()
while True:
data = response.read(defaultBlock)
if not len(data):
print str(self.logDate)+"-"+localLogFileName+"获取成功!"
return
else:
code1.write(data)
except urllib2.HTTPError as httpError:
if httpError.code == httplib.NOT_FOUND:
print url+"is not found,404"
else:
raise

urllib代码:

        defaultBlock = 2048
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
conn = urllib2.Request(url)
conn.add_header("Authorization", "Basic %s" % base64string)
try:
with open(localLogFile, "wb") as code1:
with contextlib.closing(urllib2.urlopen(conn)) as result:
while True:
data = result.read(defaultBlock)
if not len(data):
print str(self.logDate)+"-"+localLogFileName+"获取成功!"
return
else:
code1.write(data)
except urllib2.HTTPError as httpError:
if httpError.code == httplib.NOT_FOUND:
print url+"is not found,404"
else:
raise

执行效率代码:

from timeit import Timer
t1 = Timer('doGetLogByConfig()', 'from __main__ import doGetLogByConfig')
print t1.timeit(1)

结果:

httplib时间:
45.4764687239
urllib时间:
64.3462849881

python httplib和urllib的性能比较的更多相关文章

  1. python的httplib、urllib和urllib2的区别及用

    慢慢的把它们总结一下,总结就是最好的学习方法 宗述 首先来看一下他们的区别 urllib和urllib2 urllib 和urllib2都是接受URL请求的相关模块,但是urllib2可以接受一个Re ...

  2. Python核心模块——urllib模块

    现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...

  3. [转]Python核心模块——urllib模块

    现在Python基本入门了,现在开始要进军如何写爬虫了! 先把最基本的urllib模块弄懂吧. urllib模块中的方法 1.urllib.urlopen(url[,data[,proxies]]) ...

  4. Python调用C模块以及性能分析

    一.c,ctypes和python的数据类型的对应关系 ctypes type ctype Python type c_char char 1-character string c_wchar wch ...

  5. [python]用profile协助程序性能优化

    转自:http://blog.csdn.net/gzlaiyonghao/article/details/1483728 本文最初发表于恋花蝶的博客http://blog.csdn.net/lanph ...

  6. Python爬虫之urllib模块2

    Python爬虫之urllib模块2 本文来自网友投稿 作者:PG-55,一个待毕业待就业的二流大学生. 看了一下上一节的反馈,有些同学认为这个没什么意义,也有的同学觉得太简单,关于Beautiful ...

  7. Python爬虫之urllib模块1

    Python爬虫之urllib模块1 本文来自网友投稿.作者PG,一个待毕业待就业二流大学生.玄魂工作室未对该文章内容做任何改变. 因为本人一直对推理悬疑比较感兴趣,所以这次爬取的网站也是平时看一些悬 ...

  8. Python爬虫之Urllib库的基本使用

    # get请求 import urllib.request response = urllib.request.urlopen("http://www.baidu.com") pr ...

  9. python学习笔记——urllib库中的parse

    1 urllib.parse urllib 库中包含有如下内容 Package contents error parse request response robotparser 其中urllib.p ...

随机推荐

  1. JavaScript -- throw、try 和 catch

    try 语句测试代码块的错误. catch 语句处理错误. throw 语句创建自定义错误. 很想java哦. <!DOCTYPE html> <html> <head& ...

  2. HTMLUnit web测试

    httpClient不能动态执行网页中的js,这样无法获取js生成的动态网页.htmlUnit是个解决方法. if you’re considering web application testing ...

  3. LR和SVM的区别

    一.相同点 第一,LR和SVM都是分类算法(SVM也可以用与回归) 第二,如果不考虑核函数,LR和SVM都是线性分类算法,也就是说他们的分类决策面都是线性的. 这里要先说明一点,那就是LR也是可以用核 ...

  4. Linux命令之touch

    touch命令 用处:新建文件 (默认是文本,你可以自己加后缀) 用法:在终端中输入touch加上要新建的文件的名字(注意!同一目录下文件夹和文件是不允许同名的) 示例: (新建一个名字叫newfil ...

  5. python---自定义分页类

    # coding:utf8 # __author: Administrator # date: 2018/3/7 0007 # /usr/bin/env python import tornado.w ...

  6. This dependency was not found: * !!vue-style-loader!css-loader?

    npm install stylus-loader css-loader style-loader --save-dev 猜测这两个组件发布时是不需要的,所以要加上-dev

  7. jaxp实现对xml文档的增,删,改,查操作(附源码)浅析

    jaxp,属于javase中的一部分.是对xml进行解析的一个工具类: 既然说到这里,还是讲全一点,讲讲上面说到的xml的解析技术. xml的一个标记型文档. 在html的层级结构中,它会在内存中分配 ...

  8. 数据库的一致性读,赃读,多线程与赃读,ACID,UNDO

    赃读 对于对象额同步异步方法,我们在设计自己的程序的时候,一定要考虑的问题整体,不然会出现数据不一致的错误,很经典的就是赃读(dityread) 示例: ​ package com.nbkj.thre ...

  9. nginx 全局配置

    nginx 全局配置 #user nobody; # user 主模块 ,指定nginx worker 进程的运行用户组 worker_processes ; # worker_processes 开 ...

  10. Linux - 账户切换授权

    sudo 切换账户 echo myPassword | sudo -S ls /tmp # 直接输入sudo的密码非交互,从标准输入读取密码而不是终端设备 visudo # sudo命令权限添加 /e ...