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 相关文章推荐
在Python中使用matplotlib模块绘制数据图的示例
May 04 Python
Python开发之快速搭建自动回复微信公众号功能
Apr 22 Python
深入理解Python变量与常量
Jun 02 Python
Python错误: SyntaxError: Non-ASCII character解决办法
Jun 08 Python
Python微信企业号开发之回调模式接收微信端客户端发送消息及被动返回消息示例
Aug 21 Python
Python实现获取nginx服务器ip及流量统计信息功能示例
May 18 Python
带你认识Django
Jan 15 Python
在windows下使用python进行串口通讯的方法
Jul 02 Python
Python中变量的输入输出实例代码详解
Jul 28 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 Python
python使用for...else跳出双层嵌套循环的方法实例
May 17 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
COM in PHP (winows only)
2006/10/09 PHP
php各种编码集详解和以及在什么情况下进行使用
2011/09/11 PHP
PHP内核介绍及扩展开发指南―基础知识
2011/09/11 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
PHP函数eval()介绍和使用示例
2014/08/20 PHP
php实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
用PHP写的一个冒泡排序法的函数简单实例
2016/05/26 PHP
PHP实现验证码校验功能
2017/11/16 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
showModelessDialog()使用详解
2006/09/07 Javascript
qTip 基于JQuery的Tooltip插件[兼容性好]
2010/09/01 Javascript
jquery实现顶部向右伸缩的导航区域代码
2015/09/02 Javascript
JS实现汉字与Unicode码相互转换的方法详解
2017/04/28 Javascript
如何开发出更好的JavaScript模块
2017/12/22 Javascript
详解Angular5 服务端渲染实战
2018/01/04 Javascript
webpack4 + react 搭建多页面应用示例
2018/08/03 Javascript
深入解析Vue源码实例挂载与编译流程实现思路详解
2019/05/05 Javascript
layui富文本编辑器前端无法取值的解决方法
2019/09/18 Javascript
详解Python的Django框架中Manager方法的使用
2015/07/21 Python
Python读取txt文件数据的方法(用于接口自动化参数化数据)
2018/06/27 Python
python 保存float类型的小数的位数方法
2018/10/17 Python
Python Django 封装分页成通用的模块详解
2019/08/21 Python
基于python全局设置id 自动化测试元素定位过程解析
2019/09/04 Python
python实现输入的数据在地图上生成热力图效果
2019/12/06 Python
python环境下安装opencv库的方法
2020/03/05 Python
django教程如何自学
2020/07/31 Python
python自动打开浏览器下载zip并提取内容写入excel
2021/01/04 Python
CSS3 绘制BMW logo实的现代码
2013/04/25 HTML / CSS
介绍一下EJB的分类及其各自的功能及应用
2016/08/23 面试题
幼儿园元旦亲子活动方案
2014/02/17 职场文书
代领毕业证委托书
2014/08/02 职场文书
大型公益活动策划方案
2014/08/20 职场文书
员工辞职信怎么写
2015/02/27 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
运动会200米广播稿
2015/08/19 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书