如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
Pycurl的简单使用与对比在几次莫名其妙的退出之后,我终于有点放弃urllib2,开始尝试其他的模块。看到很多人推荐wget和pycurl。wget是独立软件,所以就没考虑。pycurl的话,得益于基于c语言开发的curl性能强劲,使得普遍反映它效率快、稳定性高、功能强大。于是决定尝试之,简单测试了下(见后面),如果用平均值来比较的话,pycur所消耗的时间远小于urllib2。这对于爬虫来讲,累积之后变化就非常可观了。PycURL是一个非常快速(参考多并发操作)和丰富完整特性的,但是有点复杂的接口。如果你需要些简单或纯Python的模块,你可以参考一下urllib2或urlgrabber。通过http://pycurl.sourceforge.net/了解PycURL的文档信息及其其他信息。因为PycURL是对libcurl的一个封装,使用时还需要参考libcurl的文档(针对C的)。pycurl的安装获取和安装libcurl非常简单,取决于您所运行的Linux版本,如果你也使用ubuntu,那只需要使用ap-get就可以轻松安装。$sudoapt-getlibcurl3$sudoapt-getpython-pycurl如果想查看下系统内pycurl版本信息可以:1>>>importpycurl2>>>pycurl.version3'libcurl/7.19.7GnuTLS/2.8.5zlib/1.2.3.3libidn/1.15'如上所示,我的系统里的libcurl是7.19.7的最新版本。pycurl的使用:pycurl.Curl()->Curlobject这个函数创建一个同libcurl中的CURL处理器相对应的Curl对象.Curl对象自动的设置CURLOPT_VERBOSE为0,CURLOPT_NOPROGRESS为1,提供一个默认的CURLOPT_USERAGENT和设置CURLOPT_ERRORBUFFER指向一个私有的错误缓冲区.pycurl.HYPERLINK"http://wiki.woodpecker.org.cn/moin/CurlMulti"CurlMulti()->HYPERLINK"http://wiki.woodpecker.org.cn/moin/CurlMulti"CurlMultiobject这个函数创建一个新的与libcurl中的CURLM处理器相对应的HYPERLINK"http://wiki.woodpecker.org.cn/moin/CurlMulti"CurlMulti对象.pycurl.HYPERLINK"http://wiki.woodpecker.org.cn/moin/CurlShare"CurlShare()->HYPERLINK"http://wiki.woodpecker.org.cn/moin/CurlShare"CurlShareobject这个函数创建一个新的与libcurl中的CURLSH处理器相对应的HYPERLINK"http://wiki.woodpecker.org.cn/moin/CurlShare"CurlShare对象.HYPERLINK"http://wiki.woodpecker.org.cn/moin/CurlShare"CurlShare对象可以在Curl对象上传递SHARE选项参数.[待续]其中:Curl对象具有以下方法:close()->None对应的是libcurl中的HYPERLINK"http://curl.haxx.se/libcurl/c/curl_easy_cleanup.html"curl_easy_cleanup方法.当Curl对象不再被引用时pycurl会自动调用这个方法,但也可直接地调用这个方法.perform()->None对应于libcurl中的HYPERLINK"http://curl.haxx.se/libcurl/c/curl_easy_perform.html"curl_easy_perform方法.setopt(option,value)->None对应于libcurl中的HYPERLINK"http://curl.haxx.se/libcurl/c/curl_easy_setopt.html"curl_easy_setopt方法,option使用libcurl中的CURLOPT_*常量来指定,只可惜CURLOPT_前缀现在已经被去掉了.value的数据类型依赖于option,它可以是一个字符串,整型,长整型,文件对象,列表或是函数.Exampleusage:importpycu