在使用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 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)

转载于:https://www.cnblogs.com/changyou/archive/2010/01/09/1643075.html

Python PycURL 网络编程相关推荐

  1. Python高级网络编程系列之第一篇

    在上一篇中我们简单的说了一下Python中网络编程的基础知识(相关API就不解释了),其中还有什么细节的知识点没有进行说明,如什么是TCP/IP协议有几种状态,什么是TCP三次握手,什么是TCP四次握 ...

  2. Python之网络编程(TCP套接字与UDP套接字)

    文章目录 基于tcp的套接字 实现目标 tcp服务端源码 tcp客户端源码 tcp效果实现 基于udp的套接字 udp作用介绍 udp服务端源码 udp客户端源码 udp效果实现 用udp实现一个时间 ...

  3. Python Socket网络编程(二)局域网内和局域网与广域网的持续通信

    目录 前言 IP地址 简介 公有IP 私有IP 局域网之间网络通信 前提 功能描述 源码 运行结果 局域网与广域网网络通信 前提 源码 结语 前言 本系列博客是笔者学习Python Socket的过程 ...

  4. Python Socket网络编程(一)初识Socket和Socket初步使用

    目录 前言 网络编程 实质 IP地址和端口 数据传输协议 协议 Socket 概念 套接字 socket对象方法 初步使用 功能 源码 运行结果 结语 前言 本系列博客是笔者学习Python Sock ...

  5. python recv_python网络编程调用recv函数完整接收数据的三种方法

    最近在使用python进行网络编程开发一个通用的tcpclient测试小工具.在使用socket进行网络编程中,如何判定对端发送一条报文是否接收完成,是进行socket网络开发必须要考虑的一个问题.这 ...

  6. 0x011.Python学习-网络编程、PortScan

    Python3 网络编程 Python 提供了两个级别访问的网络服务.: 低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口 ...

  7. 用 Python 写网络编程(四)

    本文首发于TesterHome社区,作者是资深游戏测试开发工程师陈子昂.用 Python 写网络编程共四篇,今天分享的是第四篇.原文链接:https://testerhome.com/topics/2 ...

  8. Python 异步网络编程实战

    Python 异步网络编程实战 - songcser - 掘金小册 小册介绍 第一部分是对 Python 协程的讲解,从字节码开始简单讲解了 Python 虚拟机的执行过程,可以大体了解到 Pytho ...

  9. Python之网络编程(socket基础)

    文章目录 客户端/服务器架构 1.即C/S架构 2.C/S架构与socket的关系 3.两机交互的原理 Socket编程 1.socket编程的概念 2.socket的两种类型 3.socket的运行 ...

最新文章

  1. linux 下根据cpp文件快速书写头文件
  2. 【tensorflow】】模型优化(一)指数衰减学习率
  3. WebLogic 数据源密码加密
  4. python3的float数精度_python浮点数精度问题
  5. 关于varchar2在pl/sql和schema级别的最大值
  6. 沐猿而冠 -教育-读书笔记(一)
  7. linux用户组和权限分配
  8. 实验4-2-8 输出整数各位数字 (15 分)
  9. LINUX C正确遍历environ
  10. matlab s函数z变换,Matlab符号计算——s函数转z函数
  11. Windows| 彻底修改 Windows 系统用户名
  12. end 键功能的定义
  13. 个人博客建站中jekyll/hexo/Hugo各自的优势与区别
  14. abb和plcsocket通讯_abb与西门子plc通讯问题
  15. truelicense使用手册
  16. 原子的波尔模型、能量量子化、光电效应、光谱实验、量子态、角动量
  17. 十分钟写一个基于springboot+vue+redis+mysql的银行转账与用户后台管理系统,redis实现用户登录与缓存
  18. (26)盘古自研框架BackPropagation
  19. NmapToExcel 批量nmap写入xlsx
  20. Java中使用zt-exec执行多shell/Linux命令,执行日志实时推送前端

热门文章

  1. 14种东西帮你治疗口腔溃疡 - 生活至上,美容至尚!
  2. Changes at Different Environment?
  3. ----uni-app之修改头像----
  4. 易百教程人工智能python修正-人工智能NLTK性别发现器
  5. Android Studio3.0中dependencies依赖由compile变为implementation的区别
  6. 我国IPv6建设起大早赶晚集 2017年将如何撸起袖子加油干?
  7. *.zip、*.tar、*.tar.gz、*.tar.bz2、*.tar.xz、*.jar、*.7z
  8. 如何成为一名入门级 iOS 开发者
  9. DB2性能调节工作总结
  10. 【转】C# DateTime 日期计算