简单谈谈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 ldap实现登录实例代码
Sep 30 Python
对Python 文件夹遍历和文件查找的实例讲解
Apr 26 Python
python 解压pkl文件的方法
Oct 25 Python
Django model反向关联名称的方法
Dec 15 Python
Python跳出多重循环的方法示例
Jul 03 Python
Python计算一个点到所有点的欧式距离实现方法
Jul 04 Python
Python实现的统计文章单词次数功能示例
Jul 08 Python
python文字和unicode/ascll相互转换函数及简单加密解密实现代码
Aug 12 Python
详解使用PyInstaller将Pygame库编写的小游戏程序打包为exe文件
Aug 23 Python
使用python实现对元素的长截图功能
Nov 14 Python
python离线安装外部依赖包的实现
Feb 13 Python
python实现暗通道去雾算法的示例
Sep 27 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 checkbox 取值详细说明
2010/08/19 PHP
PHP开发中的错误收集,不定期更新。
2011/02/03 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
dedecms集成财付通支付接口
2014/12/28 PHP
php实现的微信红包算法分析(非官方)
2015/09/25 PHP
编写PHP程序检查字符串中的中文字符个数的实例分享
2016/03/17 PHP
PHP编程之设置apache虚拟目录
2016/07/08 PHP
Ubuntu VPS中wordpress网站打开时提示”建立数据库连接错误”的解决办法
2016/11/03 PHP
Laravel框架Eloquent ORM简介、模型建立及查询数据操作详解
2019/12/04 PHP
js控制滚动条缓慢滚动到顶部实现代码
2013/03/20 Javascript
Extjs优化(二)Form表单提交通用实现
2013/04/15 Javascript
jQuery函数map()和each()介绍及异同点分析
2014/11/08 Javascript
JavaScript实现简单的数字倒计时
2015/05/15 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
基于CSS3和jQuery实现跟随鼠标方位的Hover特效
2016/07/25 Javascript
浅谈JS的基础类型与引用类型
2016/09/13 Javascript
BootstrapValidator实现注册校验和登录错误提示效果
2017/03/10 Javascript
js原生Ajax的封装和原理详解
2017/03/11 Javascript
详解webpack-dev-server使用http-proxy解决跨域问题
2018/01/13 Javascript
webpack4 CSS Tree Shaking的使用
2018/09/03 Javascript
使用Phantomjs和Node完成网页的截屏快照的方法
2019/07/16 Javascript
javascript实现计算器功能
2020/03/30 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
Python标准库与第三方库详解
2014/07/22 Python
Python 处理数据的实例详解
2017/08/10 Python
Python使用SQLite和Excel操作进行数据分析
2018/01/20 Python
导致python中import错误的原因是什么
2020/07/01 Python
python 使用建议与技巧分享(四)
2020/08/18 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
精细化工应届生求职信
2013/11/17 职场文书
宿舍使用违章电器检讨书
2014/01/12 职场文书
搞笑获奖感言
2014/01/30 职场文书
社会发展项目建议书
2014/08/25 职场文书
超市收银员岗位职责
2015/04/07 职场文书
教师节简报
2015/07/20 职场文书
Python+SeaTable实现计算两个日期间的工作日天数
2022/07/07 Python