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 os模块介绍
Nov 30 Python
深入解析Python中的WSGI接口
May 11 Python
Python基于pygame实现图片代替鼠标移动效果
Nov 11 Python
python3下实现搜狗AI API的代码示例
Apr 10 Python
python dataframe astype 字段类型转换方法
Apr 11 Python
通过python爬虫赚钱的方法
Jan 29 Python
CentOS6.9 Python环境配置(python2.7、pip、virtualenv)
May 06 Python
Python基本数据结构之字典类型dict用法分析
Jun 08 Python
PyTorch: 梯度下降及反向传播的实例详解
Aug 20 Python
Pytorch学习之torch用法----比较操作(Comparison Ops)
Jun 28 Python
python游戏开发Pygame框架
Apr 22 Python
PYTHON 使用 Pandas 删除某列指定值所在的行
Apr 28 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函数addslashes和mysql_real_escape_string的区别
2014/04/22 PHP
thinkphp自带验证码全面解析
2016/09/18 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
国外的为初学者写的JavaScript教程
2008/06/09 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
jQuery实现的导航条切换可显示隐藏
2014/10/22 Javascript
详解Document.Cookie
2015/12/25 Javascript
Jquery attr()方法 属性赋值和属性获取详解
2016/04/15 Javascript
JS实现搜索框文字可删除功能
2016/12/28 Javascript
JS中传递参数的几种不同方法比较
2017/01/20 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
Vue.js2.0中的变化小结
2017/10/24 Javascript
JS处理数据四舍五入(tofixed与round的区别详解)
2017/10/26 Javascript
CentOS环境中MySQL修改root密码方法
2018/01/07 Javascript
ES6小技巧之代替lodash
2019/06/07 Javascript
搭建Vue从Vue-cli到router路由护卫的实现
2019/11/14 Javascript
javascript实现简易数码时钟
2020/03/30 Javascript
JS实现公告上线滚动效果
2021/01/10 Javascript
python3简单实现微信爬虫
2015/04/09 Python
深入理解Python中装饰器的用法
2016/06/28 Python
使用Python写一个贪吃蛇游戏实例代码
2017/08/21 Python
python merge、concat合并数据集的实例讲解
2018/04/12 Python
python中强大的format函数实例详解
2018/12/05 Python
Python任务调度利器之APScheduler详解
2020/04/02 Python
python用700行代码实现http客户端
2021/01/14 Python
澳大利亚窗帘商店:Curtain Wonderland
2019/12/01 全球购物
2014自荐信的写作技巧
2014/01/28 职场文书
公安民警正风肃纪剖析材料
2014/10/10 职场文书
食堂采购员岗位职责
2015/04/03 职场文书
2016年大学迎新晚会工作总结
2015/10/15 职场文书
新学期小学班主任工作计划
2019/06/21 职场文书
小学作文之描写天气
2019/08/15 职场文书
HTML基础-标签分类(闭合标签,空标签,块级元素,行内元素,行级块元素,可替换元素)
2021/03/31 HTML / CSS
Django使用redis配置缓存的方法
2021/06/01 Redis
ORACLE中dbms_output.put_line输出问题的解决过程
2022/06/28 Oracle
MySQL主从切换的超详细步骤
2022/06/28 MySQL