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脚本实现xls(xlsx)转成csv
Apr 10 Python
python利用标准库如何获取本地IP示例详解
Nov 01 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
python 实现目录复制的三种小结
Dec 04 Python
通过python连接Linux命令行代码实例
Feb 18 Python
Django框架models使用group by详解
Mar 11 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
python实现读取类别频数数据画水平条形图案例
Apr 24 Python
python和C++共享内存传输图像的示例
Oct 27 Python
详解python polyscope库的安装和例程
Nov 13 Python
Python将list元素转存为CSV文件的实现
Nov 16 Python
OpenCV-Python实现图像平滑处理操作
Jun 08 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页面执行时间,数据库读写次数,函数调用次数等(THINKphp)
2013/06/03 PHP
yii2中添加验证码的实现方法
2016/01/09 PHP
PHP7 echo和print语句实例用法
2019/02/15 PHP
PHP中的自动加载操作实现方法详解
2019/08/06 PHP
laravel入门知识点整理
2020/09/15 PHP
js中indexof的用法详细解析
2013/12/24 Javascript
JS动态添加iframe的代码
2015/09/14 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
BootStrap+Angularjs+NgDialog实现模式对话框
2016/08/24 Javascript
JS实现简单抖动效果
2017/06/01 Javascript
微信小程序支付功能 php后台对接完整代码分享
2018/06/12 Javascript
Vue 样式绑定的实现方法
2019/01/15 Javascript
Vue 引入AMap高德地图的实现代码
2019/04/29 Javascript
详解Django框架中用context来解析模板的方法
2015/07/20 Python
Python字典简介以及用法详解
2016/11/15 Python
20行python代码的入门级小游戏的详解
2019/05/05 Python
简单了解python gevent 协程使用及作用
2019/07/22 Python
纯DOM+CSS3实现简单的小风车动画
2016/09/27 HTML / CSS
萌新HTML5 入门指南(二)
2020/11/09 HTML / CSS
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
aden + anais官方网站:婴儿襁褓、毯子、尿布和服装
2017/06/21 全球购物
Timberland俄罗斯官方网上商店:全球领先的户外品牌
2020/03/15 全球购物
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
英文商务邀请信
2014/01/22 职场文书
《美丽的彩虹》教学反思
2014/02/25 职场文书
五一手机促销方案
2014/03/08 职场文书
房地产项目建议书
2014/03/12 职场文书
鼓舞士气的口号
2014/06/16 职场文书
好好学习保证书
2015/02/26 职场文书
2015年保险业务员工作总结
2015/05/27 职场文书
如何使用flask将模型部署为服务
2021/05/13 Python
Python Pandas pandas.read_sql_query函数实例用法分析
2021/06/21 Python
python实现MD5进行文件去重的示例代码
2021/07/09 Python
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技
python运行脚本文件的三种方法实例
2022/06/25 Python