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中请使用isinstance()判断变量类型
Aug 25 Python
使用django-suit为django 1.7 admin后台添加模板
Nov 18 Python
python实现获取客户机上指定文件并传输到服务器的方法
Mar 16 Python
Python实现将DOC文档转换为PDF的方法
Jul 25 Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 Python
Python中字典(dict)合并的四种方法总结
Aug 10 Python
分享一个简单的python读写文件脚本
Nov 25 Python
python:接口间数据传递与调用方法
Dec 17 Python
python中bs4.BeautifulSoup的基本用法
Jul 27 Python
详解python pandas 分组统计的方法
Jul 30 Python
Python爬虫 批量爬取下载抖音视频代码实例
Aug 16 Python
Python过滤掉numpy.array中非nan数据实例
Jun 08 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 jquery 实现新闻标签分类与无刷新分页
2009/12/18 PHP
PHP中使用imagick生成PSD文件缩略图教程
2015/01/26 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
深入理解JavaScript系列(10) JavaScript核心(晋级高手必读篇)
2012/01/15 Javascript
来自国外的30个基于jquery的Web下拉菜单
2012/06/22 Javascript
jquery中常用的SET和GET$(”#msg”).html循环介绍
2013/10/09 Javascript
Jquery跳到页面指定位置的方法
2014/05/12 Javascript
JavaScript创建一个object对象并操作对象属性的用法
2015/03/23 Javascript
JQuery boxy插件在IE中边角图片不显示问题的解决
2015/05/20 Javascript
node的process以及child_process模块学习笔记
2018/03/06 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
Vue 实现手动刷新组件的方法
2019/02/19 Javascript
Vue如何将页面导出成PDF文件
2020/08/17 Javascript
JavaScript实现简易计算器小功能
2020/10/22 Javascript
[02:50]【扭转乾坤,只此一招】DOTA2永雾林渊版本开启新篇章
2020/12/22 DOTA
Python3基础之基本运算符概述
2014/08/13 Python
跟老齐学Python之dict()的操作方法
2014/09/24 Python
在Django的视图中使用数据库查询的方法
2015/07/16 Python
Python之文字转图片方法
2018/05/10 Python
python中plot实现即时数据动态显示方法
2018/06/22 Python
对python 自定义协议的方法详解
2019/02/13 Python
python安装pil库方法及代码
2019/06/25 Python
Python shelve模块实现解析
2019/08/28 Python
Python单链表原理与实现方法详解
2020/02/22 Python
浅谈Django前端后端值传递问题
2020/07/15 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
python如何构建mock接口服务
2021/01/28 Python
HTML5 Canvas 实现K线图的示例代码
2019/12/23 HTML / CSS
社区护士演讲稿
2014/08/27 职场文书
2014年惩防体系建设工作总结
2014/12/01 职场文书
汽车销售助理岗位职责
2015/04/14 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
JS监听Esc 键触发事键
2021/04/14 Javascript
十个Python自动化常用操作,即拿即用
2021/05/10 Python
MySQL创建表操作命令分享
2022/03/25 MySQL