王锋

王锋的博客

他的个人主页  他的博客

pycurl的效率真是 太牛了 丢弃urllib2 回归pycurl

王锋  2010年08月27日 星期五 10:09 | 4376次浏览 | 8条评论

简单的 PycURL 例子

  
import pycurl
import StringIO
 
url = "http://www.google.com/"
crl = pycurl . Curl ( )
crl. setopt ( pycurl . VERBOSE ,1 )
crl. setopt ( pycurl . FOLLOWLOCATION , 1 )
crl. setopt ( pycurl . MAXREDIRS , 5 )
crl. fp = StringIO . StringIO ( )
crl. setopt ( pycurl . URL , url )
crl. setopt ( crl. WRITEFUNCTION , crl. fp . write )
crl. perform ( )
print crl. fp . getvalue ( )

PycURL 自动处理cookie

  
   
    import
   
   
    pycurl
   
   
import StringIO
 
url = "http://www.google.com/"
crl = pycurl . Curl ( )
crl. setopt ( pycurl . VERBOSE ,1 )
crl. setopt ( pycurl . FOLLOWLOCATION , 1 )
crl. setopt ( pycurl . MAXREDIRS , 5 )
crl. fp = StringIO . StringIO ( )
crl. setopt ( pycurl . URL , url )
crl. setopt ( crl. WRITEFUNCTION , crl. fp . write )
 
# Option -b/--cookie <name=string/file> Cookie string or file to read cookies from
# Note: must be a string, not a file object.
crl. setopt ( pycurl . COOKIEFILE , "cookie_file_name" )
 
# Option -c/--cookie-jar <file> Write cookies to this file after operation
# Note: must be a string, not a file object.
crl. setopt ( pycurl . COOKIEJAR , "cookie_file_name" )
 
crl. perform ( )
print crl. fp . getvalue ( )

PycURL 实现POST方法

    
     import
    
    
     pycurl
    
    
import StringIO
import urllib
 
url = "http://www.google.com/"
post_data_dic = { "name" : "value" }
crl = pycurl . Curl ( )
crl. setopt ( pycurl . VERBOSE , 1 )
crl. setopt ( pycurl . FOLLOWLOCATION , 1 )
crl. setopt ( pycurl . MAXREDIRS , 5 )
#crl.setopt( pycurl .AUTOREFERER,1)
 
crl. setopt ( pycurl . CONNECTTIMEOUT , 60 )
crl. setopt ( pycurl . TIMEOUT , 300 )
#crl.setopt( pycurl .PROXY,proxy)
crl. setopt ( pycurl . HTTPPROXYTUNNEL , 1 )
#crl.setopt( pycurl .NOSIGNAL, 1)
crl. fp = StringIO . StringIO ( )
crl. setopt ( pycurl . USERAGENT , "dhgu hoho" )
 
# Option -d/--data <data> HTTP POST data
crl. setopt ( crl. POSTFIELDS , urllib . urlencode ( post_data_dic ) )
 
crl. setopt ( pycurl . URL , url )
crl. setopt ( crl. WRITEFUNCTION , crl. fp . write )
crl. perform ( )
 
print crl. fp . getvalue ( )

urllib 超时设置

    
     import
    
    
     socket
    
    
socket . setdefaulttimeout ( 5.0 )


  
 

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !
刘洋

回复 刘洋  2011年06月04日 星期六 10:59

OMG,看得蛋疼……

0条回复

邓楠

回复 邓楠  2011年06月02日 星期四 14:31

看到这么惨烈的代码,我觉得哲思是不是考虑增加代码高亮--或者起码是缩进---的功能了

2条回复

  • 徐继哲

    回复 徐继哲  2011年06月02日 星期四 16:10

    确实很惨烈,用现在的编辑器,可以比这个好很多。不过,我们仍然要继续改进

    1条回复

钱伟

回复 钱伟  2011年05月12日 星期四 11:34

http://dpaste.com/
可以用这东东贴代码

0条回复

黄其泽

回复 黄其泽  2011年05月01日 星期日 18:06

这排版...

0条回复

沈阳

回复 沈阳  2011年04月29日 星期五 23:54

这文章的代码太难阅读了。加个显示python格式化的东西吧

0条回复

张凯朝

回复 张凯朝  2010年08月27日 星期五 13:21

学习ing.

0条回复

暂时没有评论

Zeuux © 2024

京ICP备05028076号