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去除列表中重复元素的方法
Mar 20 Python
详解Python pygame安装过程笔记
Jun 05 Python
python删除文本中行数标签的方法
May 31 Python
Python 查看list中是否含有某元素的方法
Jun 27 Python
Python3匿名函数lambda介绍与使用示例
May 18 Python
python利用tkinter实现屏保
Jul 30 Python
Python配置文件处理的方法教程
Aug 29 Python
Python笔记之观察者模式
Nov 20 Python
解决pytorch DataLoader num_workers出现的问题
Jan 14 Python
Pytorch转onnx、torchscript方式
May 25 Python
安装Anaconda3及使用Jupyter的方法
Oct 27 Python
Python可变与不可变数据和深拷贝与浅拷贝
Apr 06 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
239军机修复记
2021/03/02 无线电
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
2014/06/26 PHP
php根据一个给定范围和步进生成数组的方法
2015/06/19 PHP
PHP读取大文件的几种方法介绍
2016/10/27 PHP
遍历echsop的region表形成缓存的程序实例代码
2016/11/01 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
PHP dirname(__FILE__)原理及用法解析
2020/10/28 PHP
根据一段代码浅谈Javascript闭包
2010/12/14 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
2013/01/23 Javascript
jQuery表格插件ParamQuery简单使用方法示例
2013/12/05 Javascript
nodejs教程之入门
2014/11/21 NodeJs
jquery让指定的元素闪烁显示的方法
2015/03/17 Javascript
javascript实现简单的页面右下角提示信息框
2015/07/31 Javascript
jQuery点击其他地方时菜单消失的实现方法
2016/04/22 Javascript
jQuery validate验证插件使用详解
2016/05/11 Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
2017/05/20 Javascript
详解Vue2中组件间通信的解决全方案
2017/07/28 Javascript
微信小程序实现的点击按钮 弹出底部上拉菜单功能示例
2018/12/20 Javascript
jQuery选择器之层次选择器用法实例分析
2019/02/19 jQuery
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
js实现轮播图特效
2020/05/28 Javascript
[02:34]肉山说——泡妞篇
2014/09/16 DOTA
python利用elaphe制作二维条形码实现代码
2012/05/25 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
Python中的id()函数指的什么
2017/10/17 Python
python中将\\uxxxx转换为Unicode字符串的方法
2018/09/06 Python
Python如何爬取实时变化的WebSocket数据的方法
2019/03/09 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
Python内建序列通用操作6种实现方法
2020/03/26 Python
利用CSS3参考手册和CSS3代码生成工具加速来学习网页制
2012/07/11 HTML / CSS
HTML5 Web 存储详解
2016/09/16 HTML / CSS
SEPHORA丝芙兰捷克官网:购买香水、化妆品和护肤品
2018/11/26 全球购物
高中毕业自我评价
2014/02/08 职场文书
2015新员工试用期工作总结
2014/12/12 职场文书
如何解决.cuda()加载用时很长的问题
2021/05/24 Python
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android