简单谈谈Python的pycurl模块


Posted in Python onApril 07, 2018

pycurl是一个用c语言编写的libcurl Python实现,功能非常强大,支持操作协议有FTP,HTTP,HTTPS,TELNET等。

模块的常用方法说明:

close()方法,对应libcurl包中的curl_easy_cleanup方法,无参数,实现关闭、回收Curl对象。
·perform()方法,对应libcurl包中的curl_easy_perform方法,无参数,实现Curl对象请求的提交。
·setopt(option,value)方法,对应libcurl包中的curl_easy_setopt方法,参数option是通过libcurl的常量来指定的.参数value的值会依赖option,可以是一个字符串、整型、长整型、文件对象、列表或函数等

pycurl.Curl()    #创建一个curl对象
c.setopt(pycurl.CONNECTTIMEOUT,5)    #连接的等待时间,设置为0则不等待
c.setopt(pycurl.TIMEOUT,5)    #请求超时时间
c.setopt(pycurl.NOPROGRESS,0)    #是否屏蔽下载进度条,非0则屏蔽
c.setopt(pycurl.MAXREDIRS,5)    #指定HTTP重定向的最大数
c.setopt(pycurl.FORBID_REUSE,1)    #完成交互后强制断开连接,不重用
c.setopt(pycurl.FRESH_CONNECT,1)    #强制获取新的连接,即替代缓存中的连接
c.setopt(pycurl.DNS_CACHE_TIMEOUT,60)    #设置保存DNS信息的时间,默认为120秒
c.setopt(pycurl.URL,"http://www.baidu.com")    #指定请求的URL
c.setopt(pycurl.USERAGENT,"Mozilla/5.2(compatible;MSIE6.0;WindowsNT5.1;SV1;.NETCLR1.1.4322;.NETCLR2.0.50324)")#配置请求HTTP头的User-Agent
c.setopt(pycurl.HEADERFUNCTION,getheader)    #将返回的HTTPHEADER定向到回调函数getheader
c.setopt(pycurl.WRITEFUNCTION,getbody)    #将返回的内容定向到回调函数getbody
c.setopt(pycurl.WRITEHEADER,fileobj)    #将返回的HTTPHEADER定向到fileobj文件对象
c.setopt(pycurl.WRITEDATA,fileobj)    #将返回的HTML内容定向到fileobj文件对象

·getinfo(option)方法,对应libcurl包中的curl_easy_getinfo方法,参数option是通过libcurl的常量来指定的

c=pycurl.Curl()    #创建一个curl对象
c.getinfo(pycurl.HTTP_CODE)    #返回的HTTP状态码
c.getinfo(pycurl.TOTAL_TIME)    #传输结束所消耗的总时间
c.getinfo(pycurl.NAMELOOKUP_TIME)    #DNS解析所消耗的时间
c.getinfo(pycurl.CONNECT_TIME)    #建立连接所消耗的时间
c.getinfo(pycurl.PRETRANSFER_TIME)    #从建立连接到准备传输所消耗的时间
c.getinfo(pycurl.STARTTRANSFER_TIME)    #从建立连接到传输开始消耗的时间
c.getinfo(pycurl.REDIRECT_TIME)    #重定向所消耗的时间
c.getinfo(pycurl.SIZE_UPLOAD)    #上传数据包大小
c.getinfo(pycurl.SIZE_DOWNLOAD)    #下载数据包大小
c.getinfo(pycurl.SPEED_DOWNLOAD)    #平均下载速度
c.getinfo(pycurl.SPEED_UPLOAD)    #平均上传速度
c.getinfo(pycurl.HEADER_SIZE)    #HTTP头部大小

Python 相关文章推荐
videocapture库制作python视频高速传输程序
Dec 23 Python
python实现倒计时的示例
Feb 14 Python
11月编程语言排行榜 Python逆袭C#上升到第4
Nov 15 Python
Python中的pack和unpack的使用
Mar 12 Python
Django app配置多个数据库代码实例
Dec 17 Python
基于Python快速处理PDF表格数据
Jun 03 Python
Python3中小括号()、中括号[]、花括号{}的区别详解
Nov 15 Python
python 通过pip freeze、dowload打离线包及自动安装的过程详解(适用于保密的离线环境
Dec 14 Python
python 获取计算机的网卡信息
Feb 18 Python
Python pandas求方差和标准差的方法实例
Aug 04 Python
python游戏开发之pygame实现接球小游戏
Apr 22 Python
Python如何用re模块实现简易tokenizer
May 02 Python
VSCode下好用的Python插件及配置
Apr 06 #Python
VScode编写第一个Python程序HelloWorld步骤
Apr 06 #Python
在VS Code上搭建Python开发环境的方法
Apr 06 #Python
python装饰器深入学习
Apr 06 #Python
如何使用 Pylint 来规范 Python 代码风格(来自IBM)
Apr 06 #Python
python中pylint使用方法(pylint代码检查)
Apr 06 #Python
VSCode下配置python调试运行环境的方法
Apr 06 #Python
You might like
PHP 导出数据到淘宝助手CSV的方法分享
2010/02/27 PHP
PHP的图像处理实例小结【文字水印、图片水印、压缩图像等】
2019/12/20 PHP
JS 时间显示效果代码
2009/08/23 Javascript
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
2009/08/28 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
JS仿百度搜索自动提示框匹配查询功能
2013/11/21 Javascript
javascript遍历控件实例详细解析
2014/01/10 Javascript
jquery 实现返回顶部功能
2014/11/17 Javascript
javascript连续赋值问题
2015/07/08 Javascript
jQuery代码实现表格中点击相应行变色功能
2016/05/09 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
javaScript如何跳出多重循环break、continue
2016/09/01 Javascript
thinkjs之页面跳转同步异步操作
2017/02/05 Javascript
Bootstrap导航中表单简单实现代码
2017/03/06 Javascript
微信小程序注册60s倒计时功能 使用JS实现注册60s倒计时功能
2017/08/16 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
python算法学习之桶排序算法实例(分块排序)
2013/12/18 Python
详解Django通用视图中的函数包装
2015/07/21 Python
Python正则表达式教程之三:贪婪/非贪婪特性
2017/03/02 Python
Python matplotlib画图与中文设置操作实例分析
2019/04/23 Python
Python实现随机取一个矩阵数组的某几行
2019/11/26 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
在pytorch中动态调整优化器的学习率方式
2020/06/24 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
英国最大的电子产品和家电零售企业:Currys PC World
2016/09/24 全球购物
MediaMarkt比利时:欧洲最大电器连锁店
2020/12/21 全球购物
市场营销专业推荐信
2013/11/03 职场文书
平民服装店创业计划书
2014/01/17 职场文书
旅行社各个岗位职责
2014/03/15 职场文书
计算机科学与技术专业求职信
2014/09/03 职场文书
少先大队干部竞选稿
2015/11/20 职场文书
2019感恩宣传标语!
2019/07/05 职场文书
最美劳动诗,致敬所有的劳动者!
2019/07/12 职场文书
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL
MySQL GTID复制的具体使用
2022/05/20 MySQL