打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Python PycURL 网络编程 [Python俱乐部]

Python PycURL 网络编程

在使用urllib的时候经常会死掉,以前debug过,是没有设置 timing out 所以超时后就会死掉。
PycURL是curl的python库,虽然有些curl的功能没有实现,但是还是很强劲的。

curl是非常强劲的一个工具,
google内部用它来 debug GDATA API. Using cURL to interact with Google data services

可以去 http://pycurl.sourceforge.net/ 下载最新的PycURL。

简单的PycURL例子

import pycurlimport 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 pycurlimport 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 pycurlimport StringIOimport 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 datacrl.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 socketsocket.setdefaulttimeout(5.0)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Bloglines | My Blogs
Python调用API接口的几种方式
python使用pycurl模块详解
(1)python写简单爬虫的五种方法
PycURL登录页面下载文件
python抓取百度首页
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服