简单谈谈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 read函数按字节(字符)读取文件的实现
Jul 03 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
深入了解Django中间件及其方法
Jul 26 Python
解决Python计算矩阵乘向量,矩阵乘实数的一些小错误
Aug 26 Python
django 装饰器 检测登录状态操作
Jul 02 Python
python合并多个excel文件的示例
Sep 23 Python
python re模块常见用法例举
Mar 01 Python
Python字节单位转换(将字节转换为K M G T)
Mar 02 Python
python 爬取哔哩哔哩up主信息和投稿视频
Jun 07 Python
python使用PySimpleGUI设置进度条及控件使用
Jun 10 Python
Python实现滑雪小游戏
Sep 25 Python
Python字符串的转义字符
Apr 07 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中使用Curl、socket、file_get_contents三种方法POST提交数据
2011/08/12 PHP
表单提交错误后返回内容消失问题的解决方法(PHP网站)
2015/10/20 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
JavaScript高级程序设计 阅读笔记(十二) js内置对象Math
2012/08/14 Javascript
原生javascript实现DIV拖拽并计算重复面积
2015/01/02 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
利用Node.js制作爬取大众点评的爬虫
2016/09/22 Javascript
Ajax基础知识详解
2017/02/17 Javascript
js实现分页功能
2017/05/24 Javascript
React Native 集成jpush-react-native的示例代码
2017/08/16 Javascript
微信小程序使用Socket的实例
2017/09/19 Javascript
Bootstrap Tooltip显示换行和左对齐的解决方案
2017/10/11 Javascript
vue系列之requireJs中引入vue-router的方法
2018/07/18 Javascript
微信小程序自定义select下拉选项框组件的实现代码
2018/08/28 Javascript
基于Vue实现图片在指定区域内移动的思路详解
2018/11/11 Javascript
基于Vue el-autocomplete 实现类似百度搜索框功能
2019/10/25 Javascript
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
2020/02/04 jQuery
js实现点击上传图片并设为模糊背景
2020/08/02 Javascript
[02:41]《西雅图我们来了》2015国际邀请赛出征全记录
2015/07/23 DOTA
[52:20]VP vs VG Supermajor小组赛 B组胜者组决赛 BO3 第一场 6.2
2018/06/03 DOTA
python将控制台输出保存至文件的方法
2019/01/07 Python
Python异常处理知识点总结
2019/02/18 Python
如何快速一次性卸载所有python包(第三方库)呢
2020/10/20 Python
海信商城:海信电视、科龙空调、容声冰箱官方专卖
2017/02/07 全球购物
LN-CC日本:高端男装和女装的奢侈时尚目的地
2019/09/01 全球购物
用C或者C++语言实现SOCKET通信
2015/02/24 面试题
c++工程师面试问题
2013/08/04 面试题
27个经典Linux面试题及答案,你知道几个?
2013/01/10 面试题
Java Servlet的主要功能和作用是什么
2014/02/14 面试题
工程造价与管理专业应届生求职信
2013/11/23 职场文书
简历中自我评价怎么写
2014/02/12 职场文书
教师党员个人自我评价
2015/03/04 职场文书
2015年节能降耗工作总结
2015/05/22 职场文书
如何用vue实现网页截图你知道吗
2021/11/17 Vue.js
十大最强水系宝可梦,最美宝可梦排第三,榜首大家最熟悉
2022/03/18 日漫
Golang 实现 WebSockets 之创建 WebSockets
2022/04/24 Golang