Python中的CURL PycURL使用例子


Posted in Python onJune 01, 2014

在Linux上有个常用的命令 curl(非常好用),支持curl的就是大名鼎鼎的libcurl库;libcurl是功能强大的,而且是非常高效的函数库。libcurl除了提供本身的C API之外,还有多达40种编程语言的Binding,这里介绍的PycURL就是libcurl的Python binding。
在Python中对网页进行GET/POST等请求,当需要考虑高性能的时候,libcurl是非常不错的选择,一般来说会比liburl、liburl2快不少,可能也会比Requests的效率更高。特别是使用PycURL的多并发请求时,更是效率很高的。个人感觉,其唯一的缺点是,由于是直接调用的是libcurl C库,PycURL的函数接口之类的还和C中的东西很像,可能不是那么的Pythonic,写代码的学习曲线稍微比liburl高一点儿。
还是看个简单的例子吧:

#! /usr/bin/env python
# -*- coding: utf-8 -*-'''
Created on Dec 15, 2013
@author: Jay
'''
import sys
import pycurl
import time
class Test:
    def __init__(self):
        self.contents = ''
    def body_callback(self, buf):
        self.contents = self.contents + buf
sys.stderr.write("Testing %s\n" % pycurl.version)
start_time = time.time()
url = 'http://www.dianping.com/shanghai'
t = Test()
c = pycurl.Curl()
c.setopt(c.URL, url)
c.setopt(c.WRITEFUNCTION, t.body_callback)
c.perform()
end_time = time.time()
duration = end_time - start_time
print c.getinfo(pycurl.HTTP_CODE), c.getinfo(pycurl.EFFECTIVE_URL)
c.close()
print 'pycurl takes %s seconds to get %s ' % (duration, url)
print 'lenth of the content is %d' % len(t.contents)
#print(t.contents)
Python 相关文章推荐
压缩包密码破解示例分享(类似典破解)
Jan 17 Python
Python中的多重装饰器
Apr 11 Python
python中使用正则表达式的连接符示例代码
Oct 10 Python
Python线性方程组求解运算示例
Jan 17 Python
Pytorch模型转onnx模型实例
Jan 15 Python
python实现word文档批量转成自定义格式的excel文档的思路及实例代码
Feb 21 Python
Python进程间通信multiprocess代码实例
Mar 18 Python
Python批量处理csv并保存过程解析
May 16 Python
Keras load_model 导入错误的解决方式
Jun 09 Python
Python类成员继承重写的实现
Sep 16 Python
Python OpenCV快速入门教程
Apr 17 Python
python控制台打印log输出重复的解决方法
May 14 Python
Python实现多线程下载文件的代码实例
Jun 01 #Python
python使用在线API查询IP对应的地理位置信息实例
Jun 01 #Python
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 #Python
2款Python内存检测工具介绍和使用方法
Jun 01 #Python
使用Python的Supervisor进行进程监控以及自动启动
May 29 #Python
python应用程序在windows下不出现cmd窗口的办法
May 29 #Python
python正则表达式re模块详细介绍
May 29 #Python
You might like
Codeigniter的dom类用法实例
2015/06/26 PHP
使用PHP实现生成HTML静态页面
2015/11/18 PHP
PHP可变变量学习小结
2015/11/29 PHP
PHP时间函数使用详解
2019/03/21 PHP
php 利用socket发送GET,POST请求的实例代码
2020/07/04 PHP
Javascript 汉字字节判断
2009/08/01 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
javascript语言结构小记(一)
2011/09/10 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
jQuery中appendTo()方法用法实例
2015/01/08 Javascript
JS选中checkbox后获取table内一行TD所有数据的方法
2015/07/01 Javascript
带有定位当前位置的百度地图前端web api实例代码
2016/06/21 Javascript
Bootstarp基本模版学习教程
2017/02/01 Javascript
Avalonjs 实现简单购物车功能(实例代码)
2017/02/07 Javascript
ionic+AngularJs实现获取验证码倒计时按钮
2017/04/22 Javascript
原生JS+HTML5实现跟随鼠标一起流动的粒子动画效果
2018/05/03 Javascript
详解webpack引入第三方库的方式以及注意事项
2019/01/15 Javascript
Vue CLI3中使用compass normalize的方法
2019/05/30 Javascript
如何使用CSS3+JQuery实现悬浮墙式菜单
2019/06/18 jQuery
解决jquery validate 验证不通过后验证正确的信息仍残留在label上的方法
2019/08/27 jQuery
使用vue cli4.x搭建vue项目的过程详解
2020/05/08 Javascript
[03:04]2018年度DOTA2玩家最喜爱的主播-完美盛典
2018/12/16 DOTA
Python编程之属性和方法实例详解
2015/05/19 Python
Python地图绘制实操详解
2019/03/04 Python
python写日志文件操作类与应用示例
2019/07/01 Python
初一学生评语大全
2014/04/24 职场文书
2014年技术部工作总结
2014/12/12 职场文书
2014年体检中心工作总结
2014/12/23 职场文书
学生个人总结范文
2015/02/15 职场文书
文明旅游倡议书
2015/04/28 职场文书
借钱欠条怎么写
2015/07/03 职场文书
运动会入场词
2015/07/18 职场文书
大学生心理健康教育心得体会
2016/01/12 职场文书
高中生社会实践心得体会
2016/01/14 职场文书
2019预备党员转正申请书模板2篇!
2019/08/07 职场文书
【HBU】数据库第四周 单表查询
2021/04/05 SQL Server