版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Pycurl的简单使用和比较荒唐的退场几次后,我终于放弃了一点,开始尝试其他模块。我看到很多人推荐wget和pylol。Wget是独立软件,因此没有考虑。Pycoll的强大curl性能(基于c语言开发)广泛反映了高效、可靠和强大的功能。所以决定尝试它。简单地(见下文)比较,pycur消耗的时间比urllib2少得多。这在爬行动物身上累积后给人留下了很深的印象。PycURL是一个非常快速(引用多并发)、丰富、完整的功能,但有点复杂的界面。如果需要简单或纯粹的python模块,可以参阅urllib2或urlgrabber。通过http:/PycURL./了解有关pyu
2、rl的文档信息和其他信息。PycURL是libcurl的包,因此还需要对c的libcurl的引用。安装Pycurl获取和安装Libcurl非常简单,具体取决于运行的Linux版本,如果使用Ubuntu,则只需安装ap-get即可。$ sudo apt-getlibcurl3$ sudo apt-get python-pytcurl要检查以下系统上的pycurl版本信息,可以执行以下操作:1 import pycurl2 pycurl.version3 lib curl/7 . 19 . 7 gnutls/2 . 8 . 5 zlib/1 . 2 . 3 . 3 lib IDN/1.15如上所示
3、,我系统上的libcurl是7.19.7的最新版本。使用Pycurl:Pycurl。Curl() -Curlobject此函数是对应于libCURL的CURL处理器的Curl对象。自动设置curl对象CURLOPT_VERBOSE为0,curl opt _ no progress为1,默认CURLOPT_USERAGENT和设置CURLOPT_ERRORBUFFER指向个人错误缓冲区。py coll . curlsion()-curlmultiobject此函数创建与libcurl的CURLM处理器相对应的新CurlMulti对象。py coll . curlshareobject()-cur
4、lshareobject此函数是对应于libCurl的CURLSH处理器的新CurlShare对象。创建curlchare对,然后从curl对象传递SHARE选项参数。继续其中:Curl对象具有以下方法:Close()-None对应于libCurl的curl_easy_cleanup方法。不再引用curl对象时,将自动调用此方法,但也可以直接调用此方法。Perform()-None对应于libcurl的curl_easy_perform方法。Setopt(option,value)-None对应于libcurl的curl_easy_setopt方法,option是使用libcurl的CURLO
5、PT_*常量指定的。但是,CURLOPT_前缀现在取决于option。value的数据类型可以是字符串、整数、长整数、文件对象、列表或函数。Example usage:拿来咸菜C=pycurl。Curl()C.setopt (pycoll.url, /)C.setopt (pyurl.httpheader, accept 3360 )Import StringIOB=StringIO。StringIO()C.setopt (pyurl.write function,b.write)C.setopt (pycoll.follow location,1)C.
6、setopt (pyurl.maxredirs,5)C.perform()Print b.getvalue()Getinfo(option)-Result对应于libcurl的curl_easy_getinfo方法,option是使用libcurl的CURLOPT_*常量指定的。但是,CURLOPT_前缀现在已删除。Result包含指定的整数、浮点数或字符串,因为在调用或完成指定的option.getinfo方法之前,不能调用该方法。Example usage:拿来咸菜C=pycurl。Curl()C.setopt (pyurl.url, )C.setopt (pyc
7、oll.follow location,1)C.perform()Printc.getinfo (pyurl.http _ code),c.getinfo (pyurl.effective _ URL).-200 /Errstr()-String从此处理器返回内部libcurl错误缓冲区的字符串表示形式。其他的以后再翻译。Urilib2 vspyl的简单比较导入Url布局,然后使用urllib2和pycurl导入页面内容,并计算每个页面所用的时间。最后比较平均时间。我跑来这里,相关资料如下。pycurl可能比urllib2节省20%以上的时间。1: u
8、rllib2平均时间:0。pycurl平均时间:0。2330urllib2平均时间:0。pycurl平均时间:0。3: urllib2平均时间:0。pycurl平均时间:0。4: urllib2平均时间:0。pycurl平均时间:0。5: urllib2平均时间:0。pycurl平均时间:0。6: urllib2平均时间:0。pycurl平均时间:0。7: urllib2平均时间:0。pycurl平均时间:0。相关代码如下:1: #coding=utf-82: import OS3: import datetime as dt4: import time5: import urllib26:
9、import pycurl7: import cstring io as stringio8:比较Pycurl和urllib2效率的9:测试程序103360橘子2010.12.05一只11:12:13: deffetch _ URL(menu URL= ):从14: URL导入目录页内容。返回页面内容字符串15:使用urllib2实现16:17: the_page= 18: try:19: #下载页面2033 360 req=urllib 2 . request(menu URL)213360 req . add _ header(user-agent,Mozilla/5.0(windows;
10、u;Windows NT 6.1zh-CN;RV :1 . 9 . 2 . 12)gecko/Firefox/3 . 6 . 12)22: #设置超时2: response=urllib 2 . urlopen(req,timeout=30)24: the_page=response.read()253360 exception,e2:263360 crawler log( fetch _ URL(): error 43360% s;menuurl :% s“%”(e,menurl)27: return the_page28:29: deffetch _ URL 2(menu URL= ):从
11、303360 URL导入目录页内容。返回页面内容字符串313360使用pycurl实现32:33: the_page= 34: try:35: #下载页面36: req=pycurl。Curl()37:req.setopt (pyurl.url,menu URL)38: #设置超时39: req . setopt(pyurl . time out,30)403360fp=stringio.stringio()41: req . setopt(pyurl . write function,fp.write)423360 req . setopt(pyurl . user agent,Mozill
12、a/5.0(windows;u;Windows NT 6.1zh-CN;RV :1 . 9 . 2 . 12)gecko/Firefox/3 . 6 . 12)43: req.perform()44: the_page=fp.getvalue()45: exception,e:46: crawler log( fetch _ URL(): error 5553360% s;menuurl :% s“%”(e,menurl)47: return the_page48:49: def爬行者程式(doc):保存503360日志51:52: logfile=u 。/crawler _ error.log53: try:54: out=open(日志文件,“a”)55: out.write(位于dt.datetime.now () doc中的“time :% s % s n”%)56: exception,e:57: print“error :% s”% e58: finally:59: out.close()60:61: def url_vs_curl():62: print start:,dt.datetime.now()63: import timeit64: link=http:/www . B/,,3358
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 线上设计培训项目协议
- 2026年高效会议管理技巧与记录模板
- 2026年大学生入伍地选择对优待金和安置的影响
- 林业工程林业资源开发合作协议
- 脑梗塞的康复训练方法
- 线上线下教育培训并购重组合作协议
- 2026年金属材料冲击试验方法标准
- 乳制品加工企业产品召回管理协议
- 2026年行政事业单位财务管理制度
- 2026年肉制品加工卫生操作程序
- 国民经济行业分类和代码表(电子版)
- 2024至2030年中国混凝土搅拌运输车数据监测研究报告
- 老年人能力评估服务评估服务实施方案
- 《共情的力量》课件
- 山地越野俱乐部计划书
- 裁剪验片记录表
- 保定一中一加三初二真题试卷
- 成本会计实训第2版课后习题答案
- 第8讲《人无精神则不立 国无精神则不强》课件
- GB/T 42380-2023未成年人司法社会工作服务规范
- Unit 5 The value of money-Discovering Useful Structures 教案-高一英语人教版(2019)必修第三册
评论
0/150
提交评论