Python的pycurl包用法简介


Posted in Python onNovember 13, 2015

pycurl是功能强大的python的url包,是用c语言写的,速度很快,比urllib和httplib都快

调用方法:

import pycurl

c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://api.minicloud.com.cn/statuses/public_timeline.xml')
import StringIO  #这个用到里面的write函数
b = StringIO.StringIO()
c.setopt(pycurl.WRITEFUNCTION, b.write) #把StringIO的写函数注册到pycurl的WRITEFUNCTION中,即pycurl所有获取的内容都写入到StringIO中,如果没有这一句,pycurl就会把所有的内容在默认的输出器中输出
c.perform()
print b.getvalue()

 

这里有一个小例子,用来获取微博上流行的短地址对应的真实地址的

import StringIO
import pycurl

c = pycurl.Curl()
str = StringIO.StringIO()
c.setopt(pycurl.URL, "http://t.cn/aKln8T")
c.setopt(pycurl.WRITEFUNCTION, str.write)
c.setopt(pycurl.FOLLOWLOCATION, 1)

c.perform()
print c.getinfo(pycurl.EFFECTIVE_URL)

 

可见pycurl是十分强大和简洁的,只是要熟悉它的很多属性,下面来看一些常用的:

pycurl.Curl() #创建一个pycurl对象的方法
pycurl.Curl(pycurl.URL, http://www.google.com.hk) #设置要访问的URL
pycurl.Curl().setopt(pycurl.MAXREDIRS, 5) #设置最大重定向次数
pycurl.Curl().setopt(pycurl.CONNECTTIMEOUT, 60)
pycurl.Curl().setopt(pycurl.TIMEOUT, 300) #连接超时设置
pycurl.Curl().setopt(pycurl.USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)") #模拟浏览器
pycurl.Curl().perform() #服务器端返回的信息
pycurl.Curl().getinfo(pycurl.HTTP_CODE) #查看HTTP的状态 类似urllib中status属性
pycurl.NAMELOOKUP_TIME 域名解析时间
pycurl.CONNECT_TIME 远程服务器连接时间
pycurl.PRETRANSFER_TIME 连接上后到开始传输时的时间
pycurl.STARTTRANSFER_TIME 接收到第一个字节的时间
pycurl.TOTAL_TIME 上一请求总的时间
pycurl.REDIRECT_TIME 如果存在转向的话,花费的时间
pycurl.EFFECTIVE_URL
pycurl.HTTP_CODE HTTP 响应代码
pycurl.REDIRECT_COUNT 重定向的次数
pycurl.SIZE_UPLOAD 上传的数据大小
pycurl.SIZE_DOWNLOAD 下载的数据大小
pycurl.SPEED_UPLOAD 上传速度
pycurl.HEADER_SIZE 头部大小
pycurl.REQUEST_SIZE 请求大小
pycurl.CONTENT_LENGTH_DOWNLOAD 下载内容长度
pycurl.CONTENT_LENGTH_UPLOAD 上传内容长度
pycurl.CONTENT_TYPE 内容的类型
pycurl.RESPONSE_CODE 响应代码
pycurl.SPEED_DOWNLOAD 下载速度
pycurl.SSL_VERIFYRESULT
pycurl.INFO_FILETIME 文件的时间信息
pycurl.HTTP_CONNECTCODE HTTP 连接代码
pycurl.HTTPAUTH_AVAIL
pycurl.PROXYAUTH_AVAIL
pycurl.OS_ERRNO
pycurl.NUM_CONNECTS
pycurl.SSL_ENGINES
pycurl.INFO_COOKIELIST
pycurl.LASTSOCKET
pycurl.FTP_ENTRY_PATH

Python 相关文章推荐
Python urllib模块urlopen()与urlretrieve()详解
Nov 01 Python
Python抽象类的新写法
Jun 18 Python
python实现按任意键继续执行程序
Dec 30 Python
教大家玩转Python字符串处理的七种技巧
Mar 31 Python
详解Python之unittest单元测试代码
Jan 24 Python
python3 爬取图片的实例代码
Nov 06 Python
python异步实现定时任务和周期任务的方法
Jun 29 Python
用Python生成HTML表格的方法示例
Mar 06 Python
python+requests接口自动化框架的实现
Aug 31 Python
python爬虫之selenium库的安装及使用教程
May 23 Python
Python socket如何解析HTTP请求内容
Feb 12 Python
python_tkinter弹出对话框创建
Mar 20 Python
使用Python下载歌词并嵌入歌曲文件中的实现代码
Nov 13 #Python
Python设置Socket代理及实现远程摄像头控制的例子
Nov 13 #Python
深入解析Python中的urllib2模块
Nov 13 #Python
Python下的常用下载安装工具pip的安装方法
Nov 13 #Python
Python的Flask框架的简介和安装方法
Nov 13 #Python
Python编程入门之Hello World的三种实现方式
Nov 13 #Python
python编程开发之textwrap文本样式处理技巧
Nov 13 #Python
You might like
php类
2006/11/27 PHP
php中的时间显示
2007/01/18 PHP
PHP两种去掉数组重复值的方法比较
2014/06/19 PHP
mac环境中使用brew安装php5.5.15
2014/08/18 PHP
初识PHP
2014/09/28 PHP
学习php设计模式 php实现访问者模式(Visitor)
2015/12/07 PHP
Yii2简单实现给表单添加验证码的方法
2016/07/18 PHP
jQuery的Ajax的自动完成功能控件简要说明
2013/02/22 Javascript
了不起的node.js读书笔记之例程分析
2014/12/22 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
js绘制圆形和矩形的方法
2015/08/05 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
javascript实现二级级联菜单的简单制作
2015/11/19 Javascript
实例详解JavaScript获取链接参数的方法
2016/01/01 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
JavaScript面向对象分层思维全面解析
2016/11/22 Javascript
Bootstrap进度条学习使用
2017/02/09 Javascript
Javascript实现页面滚动时导航智能定位
2017/05/06 Javascript
JavaScript通过filereader接口读取文件
2017/05/10 Javascript
nodejs简单访问及操作mysql数据库的方法示例
2018/03/15 NodeJs
Mac下安装vue
2018/04/11 Javascript
详解在vue-cli项目下简单使用mockjs模拟数据
2018/10/19 Javascript
vue+element实现表格新增、编辑、删除功能
2019/05/28 Javascript
微信小程序之 catalog 切换实现解析
2019/09/12 Javascript
利用Python获取操作系统信息实例
2016/09/02 Python
python2.7读取文件夹下所有文件名称及内容的方法
2018/02/24 Python
Python多项式回归的实现方法
2019/03/11 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
大学生饮食配送创业计划书
2014/01/04 职场文书
九年级化学教学反思
2014/01/28 职场文书
优秀公益广告词大全
2014/03/19 职场文书
秋季开学典礼主持词
2014/03/19 职场文书
小学数学教学经验交流材料
2014/05/22 职场文书
早读课迟到检讨书
2014/09/25 职场文书
终止劳动合同协议书
2014/10/05 职场文书
2015年社区卫生工作总结
2015/04/21 职场文书