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 相关文章推荐
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python使用ftplib实现简易FTP客户端的方法
Jun 03 Python
用tensorflow搭建CNN的方法
Mar 05 Python
python使用xlsxwriter实现有向无环图到Excel的转换
Dec 12 Python
python reverse反转部分数组的实例
Dec 13 Python
python 读取dicom文件,生成info.txt和raw文件的方法
Jan 24 Python
Python网络爬虫之爬取微博热搜
Apr 18 Python
python对常见数据类型的遍历解析
Aug 27 Python
Python建造者模式案例运行原理解析
Jun 29 Python
OpenCV Python实现图像指定区域裁剪
Mar 12 Python
Python Selenium自动化获取页面信息的方法
Aug 31 Python
如何用Python提取10000份log中的产品信息
Jan 14 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批量采集下载美女图片的实现代码
2013/06/03 PHP
php验证码实现代码(3种)
2015/09/07 PHP
php 算法之实现相对路径的实例
2017/10/17 PHP
THINKPHP5分页数据对象处理过程解析
2020/10/28 PHP
javascript编程起步(第五课)
2007/02/27 Javascript
可实现多表单提交的javascript函数
2007/08/01 Javascript
JS对URL字符串进行编码/解码分析
2008/10/25 Javascript
Ajax+Json 级联菜单实现代码
2009/10/27 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
jquery文字上下滚动的实现方法
2013/03/22 Javascript
jquery打开直接跳到网页最下面、最低端实现代码
2013/04/22 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
jquery监听div内容的变化具体实现思路
2013/11/04 Javascript
Jjcarousellite 实现图片列表滚动的简单实例
2013/11/29 Javascript
JavaScript判断变量是对象还是数组的方法
2014/08/28 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
第九篇Bootstrap导航菜单创建步骤详解
2016/06/21 Javascript
[原创]JS基于FileSaver.js插件实现文件保存功能示例
2016/12/08 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
浅谈Webpack多页应用HMR卡住问题
2019/04/24 Javascript
JavaScript实现轮播图效果代码实例
2019/09/28 Javascript
使用Python实现下载网易云音乐的高清MV
2015/03/16 Python
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Python3实现转换Image图片格式
2018/06/21 Python
python并发编程 Process对象的其他属性方法join方法详解
2019/08/20 Python
pandas 强制类型转换 df.astype实例
2020/04/09 Python
欧尚俄罗斯网上超市:Auchan俄罗斯
2018/05/03 全球购物
银行实习的自我鉴定
2013/12/10 职场文书
企业统计员岗位职责
2013/12/13 职场文书
团拜会策划方案
2014/06/07 职场文书
工地宣传标语
2014/06/18 职场文书
领导班子四风对照检查材料思想汇报
2014/09/26 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
赤壁观后感(2)
2015/06/15 职场文书