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 相关文章推荐
动态创建类实例代码
Oct 07 Python
Django Highcharts制作图表
Aug 27 Python
CentOS 6.5中安装Python 3.6.2的方法步骤
Dec 03 Python
Python 从列表中取值和取索引的方法
Dec 25 Python
python实现画五角星和螺旋线的示例
Jan 20 Python
python+selenium实现自动化百度搜索关键词
Jun 03 Python
pandas dataframe的合并实现(append, merge, concat)
Jun 24 Python
Flask 上传自定义头像的实例详解
Jan 09 Python
Python基于DB-API操作MySQL数据库过程解析
Apr 23 Python
浅谈Python协程
Jun 17 Python
解决Pytorch自定义层出现多Variable共享内存错误问题
Jun 28 Python
python opencv图像处理(素描、怀旧、光照、流年、滤镜 原理及实现)
Dec 10 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
php 缓存函数代码
2008/08/27 PHP
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
PHP函数microtime()用法与说明
2013/12/04 PHP
linux下安装php的memcached客户端
2014/08/03 PHP
JQuery中form验证出错信息的查看方法
2013/10/08 Javascript
jquery弹窗插件colorbox绑定动态生成元素的方法
2014/06/20 Javascript
JavaScript字符串对象split方法入门实例(用于把字符串分割成数组)
2014/10/16 Javascript
JavaScript原生对象之String对象的属性和方法详解
2015/03/13 Javascript
JavaScript中扩展Array contains方法实例
2020/08/23 Javascript
基于jQuery实现多层次的手风琴效果附源码
2015/09/21 Javascript
详解JavaScript的闭包、IIFE、apply、函数与对象
2016/12/21 Javascript
jQuery实现select下拉框获取当前选中文本、值、索引
2017/05/08 jQuery
JavaScript屏蔽Backspace键的实现代码
2017/11/02 Javascript
在Swiper内如何制作CSS3动画效果示例代码
2017/12/07 Javascript
利用node实现一个批量重命名文件的函数
2017/12/21 Javascript
mpvue跳转页面及注意事项
2018/08/03 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
在微信小程序中使用mqtt服务的方法
2019/12/13 Javascript
在Python的循环体中使用else语句的方法
2015/03/30 Python
python fabric实现远程部署
2017/01/05 Python
Python获取当前函数名称方法实例分享
2018/01/18 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
python selenium 对浏览器标签页进行关闭和切换的方法
2018/05/21 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
老生常谈python中的重载
2018/11/11 Python
Django框架模板介绍
2019/01/15 Python
Python常用的json标准库
2019/02/19 Python
详解Selenium+PhantomJS+python简单实现爬虫的功能
2019/07/14 Python
django正续或者倒序查库实例
2020/05/19 Python
Python图像识别+KNN求解数独的实现
2020/11/13 Python
Python性能测试工具Locust安装及使用
2020/12/01 Python
python实现计算图形面积
2021/02/22 Python
期中考试后的反思
2014/02/08 职场文书
“向国旗敬礼”活动策划方案(4篇)
2014/09/27 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
python中的sys模块和os模块
2022/03/20 Python