简单谈谈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 相关文章推荐
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
python检测远程服务器tcp端口的方法
Mar 14 Python
使用C语言来扩展Python程序和Zope服务器的教程
Apr 14 Python
pandas数据框,统计某列数据对应的个数方法
Apr 11 Python
和孩子一起学习python之变量命名规则
May 27 Python
Django 忘记管理员或忘记管理员密码 重设登录密码的方法
May 30 Python
django反向解析URL和URL命名空间的方法
Jun 05 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
python实现日志按天分割
Jul 22 Python
pygame实现贪吃蛇游戏(下)
Oct 29 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
Jun 28 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生成图形验证码几种方法小结
2013/08/15 PHP
PHP+jQuery 注册模块的改进(三):更新到Smarty3.1
2014/10/14 PHP
PHP编程实现csv文件导入mysql数据库的方法
2017/04/29 PHP
PHP实现的简单对称加密与解密方法实例小结
2017/08/28 PHP
PHP SPL 被遗落的宝石【SPL应用浅析】
2018/04/20 PHP
PHP容器类的两种实现方式示例
2019/07/24 PHP
JavaScript的Cookies
2008/01/16 Javascript
jQuery输入城市查看地图使用介绍
2013/05/08 Javascript
jQuery实现列表自动滚动循环滚动展示新闻
2014/08/22 Javascript
JavaScript中的数组操作介绍
2014/12/30 Javascript
jQuery siblings()用法实例详解
2016/04/26 Javascript
JavaScript获取IP获取的是IPV6 如何校验
2016/06/12 Javascript
jQuery解决$符号命名冲突
2016/06/18 Javascript
使用 Node.js 模拟滑动拼图验证码操作的示例代码
2017/11/02 Javascript
vue.js默认路由不加载linkActiveClass问题的解决方法
2017/12/11 Javascript
全面介绍vue 全家桶和项目实例
2017/12/27 Javascript
详解webpack babel的配置
2018/01/09 Javascript
JavaScript实现简单的文本逐字打印效果示例
2018/04/12 Javascript
Angular2之二级路由详解
2018/08/31 Javascript
javascript实现手动点赞效果
2019/04/09 Javascript
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
在Python中使用matplotlib模块绘制数据图的示例
2015/05/04 Python
python中abs&map&reduce简介
2018/02/20 Python
python email smtplib模块发送邮件代码实例
2018/04/26 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
小结Python的反射机制
2020/09/28 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
html5 canvas简单封装一个echarts实现不了的饼图
2018/06/12 HTML / CSS
Nike香港官网:Nike HK
2019/03/23 全球购物
水利公司纪检监察自我鉴定
2014/02/25 职场文书
国庆节促销广告语2014
2014/09/19 职场文书
党员对照检查材料思想汇报(党的群众路线)
2014/09/24 职场文书
微观世界观后感
2015/06/10 职场文书
关于空气污染危害的感想
2015/08/11 职场文书
外出听课学习心得体会
2016/01/15 职场文书
党员心得体会范文2016
2016/01/23 职场文书