`
yuhai.china
  • 浏览: 160168 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

利用pycurl做GETMETHOD

阅读更多
import urllib2
import pycurl
import cStringIO as _StringIO
import sys
import shutil
import lxml.html as H
import threading
import StorageClient as sc
import lame

# http transfer limits
accept_type = "*/*"
connection_timeout = 500 
timeout = 800
low_speed = 200
low_speed_time = 120
max_size = 20485760 # 10MB

def get_curl(user_agent="MSIE"):
    "initialize curl handle"
    dev_null = _StringIO.StringIO()
    curl_handle = pycurl.Curl()
    curl_handle.setopt(pycurl.FOLLOWLOCATION, 1)
    curl_handle.setopt(pycurl.MAXREDIRS, 5)
    curl_handle.setopt(pycurl.CONNECTTIMEOUT, connection_timeout)
    curl_handle.setopt(pycurl.TIMEOUT, timeout)
    curl_handle.setopt(pycurl.NOSIGNAL, 1)
    curl_handle.setopt(pycurl.LOW_SPEED_LIMIT, 100)
    curl_handle.setopt(pycurl.LOW_SPEED_TIME, low_speed_time)
    curl_handle.setopt(pycurl.HTTPHEADER, ["User-Agent: %s" % "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)", accept_type])
    curl_handle.setopt(pycurl.MAXFILESIZE, max_size)
    curl_handle.setopt(pycurl.COOKIEFILE, 'cookies.txt')
    curl_handle.setopt(pycurl.COOKIEJAR, 'cookies.txt')
    curl_handle.setopt(pycurl.WRITEFUNCTION, dev_null.write)
    
    return curl_handle


def curl_fetch(curl_handle, url):
    "retrieve url, return the content, http code, time, effective url"
    fp = _StringIO.StringIO()
    curl_handle.setopt(pycurl.URL, url)
    curl_handle.setopt(pycurl.WRITEFUNCTION, fp.write)
    
    # perform the transfer
    try:
        curl_handle.perform()
    except pycurl.error, e:
        print e
        return (-1,0,0)
    content_type = curl_handle.getinfo(pycurl.CONTENT_TYPE)
    print curl_handle.getinfo(pycurl.CONTENT_TYPE)
    print curl_handle.getinfo(pycurl.HTTP_CODE)
    return (0,fp.getvalue(), content_type)

分享到:
评论

相关推荐

    widows下安装pycurl并利用pycurl请求https地址的方法

    在展开知识点前,需要明确几个概念:pycurl是一个Python模块,它包装了libcurl C库,用于创建URL请求并进行数据传输。libcurl是一个广泛使用的客户端端URL传输库,支持多种协议,包括HTTP、HTTPS、FTP等。HTTPS是...

    pycurl for python2.7

    **PyCurl for Python 2.7:网络数据传输库** PyCurl是Python编程语言的一个强大库,它为Python提供了libcurl库的功能。libcurl是一个用于处理URLs的跨平台库,支持多种协议,包括HTTP、HTTPS、FTP、FTPS等。在...

    pycurl+pyspider+phabtomjs

    - `pyspider`作为爬虫框架,负责整体任务管理和调度,可以利用`pycurl`进行数据获取,并通过内置的JavaScript支持(比如与PhantomJS集成)处理动态加载的内容。 - 当遇到需要JavaScript渲染的页面时,`PhantomJS`...

    pycurl-7.43.0.2-cp36-cp36m-win_amd64.whl

    《Python中的PyCurl库与Pyspider框架:安装与使用详解》 在Python的开发环境中,有时候我们需要处理HTTP和HTTPS请求,这时PyCurl库就显得尤为重要...通过合理地利用PyCurl,我们可以构建出强大的网络应用和爬虫系统。

    pycurl X64 python安装包

    pycurl 基于curl 官方只出版了32位版本 在http://www.lfd.uci.edu/~gohlke/pythonlibs/#pycurl中有非官方的64位版本

    Pycurl的安装与使用.doc

    【Pycurl简介】 Pycurl是一个Python绑定库,它为Python程序员提供了强大的网络访问功能。Pycurl基于libcurl库,一个用C语言编写的跨平台库,用于处理多种互联网协议,包括HTTP、FTP、TFTP等。Pycurl因其高效、稳定...

    网络爬虫框架(基于pycurl/multicur

    本教程将专注于一个基于Python的网络爬虫框架,该框架利用了`pycurl`和`multicurl`库来提高爬取效率。`pycurl`是一个Python接口,用于libcurl,一个强大的URL传输库,而`multicurl`则是在`pycurl`基础上构建的多线程...

    pycurl-7.18.2.tar.gz

    PyCurl可以利用libcurl的多线程和多连接特性,通过`setopt`设置`MAXCONNECTS`或使用`curl_multi_init`进行多线程操作。 6. **与其他库的集成**: PyCurl可以与BeautifulSoup、requests等其他Python库结合使用,...

    pycurl-7.43.1-cp37-cp37m-win_amd64 PycURL

    pycurl-7.43.1-cp37-cp37m-win_amd64 PycURL。 PycURL is a Python interface to libcurl. PycURL can be used to fetch objects identified by a URL from a Python program, similar to the urllib Python module....

    pycurl-ssl-7.19.0.win32-py2.7

    安装完成后,开发者便可以利用pycurl提供的强大功能编写网络应用。 总结起来,"pycurl-ssl-7.19.0.win32-py2.7.zip"是一个针对Python 2.7和32位Windows环境的pycurl库的SSL版本,它提供了全面的网络通信功能和强大...

    Python 2.7 windows端所需的pycurl安装文件

    Python是世界上最受欢迎的编程语言之一,特别是在Web开发和数据分析领域。在Windows环境下使用Python时,...了解如何正确选择和安装这些文件,以及如何利用`pycurl`进行网络操作,对任何Python开发者来说都是必备技能。

    pycurl-7.43.0.2 Windows64位安装包

    pycurl-7.43.0.2 Windows64位安装包,Windows安装pycurl,支持python版本3.6

    pycurl-7.19.0.win-amd64-py2.7 64位pycurl安装包

    64位windows pycurl安装包,可以直接按照后使用!已经在多台服务器上验证过!

    pycurl-7.43.0.3-cp37-cp37m-win32.whl

    pycurl使得Python程序员能够方便地利用libcurl的强大功能,包括HTTP、HTTPS、FTP、FTPS等协议的支持,以及对代理、SSL加密、cookie、文件上传和下载等多种功能的处理。 版本号“7.43.0.3”代表了pycurl的特定发行版...

    python常用pycurl-7.43.0.1

    `pycurl`的核心功能包括: 1. **HTTP方法支持**:`GET`、`POST`、`PUT`、`DELETE`等,可以方便地执行HTTP请求并获取响应数据。 2. **URL处理**:能够解析和构建URL,支持URL编码和解码。 3. **数据传输**:可以...

    Python库 | pycurl-7.43.0.5-cp35-cp35m-win_amd64.whl

    Python库是包含预编写代码的模块,开发者可以导入这些模块以利用其功能,无需从零开始编写所有代码。pycurl是一个Python接口,它封装了libcurl,一个用于处理URL的强大的客户端URL传输库。pycurl提供了丰富的HTTP和...

    下载pyspider报错时所需的pycurl文件

    然而,有时候在安装或使用`pyspider`的过程中,可能会遇到一些依赖问题,比如标题中提到的`pycurl`缺失。`pycurl`是Python的一个库,它提供了对libcurl库的接口,用于处理URL,支持多种协议,如HTTP、HTTPS、FTP等,...

    pycurl-7.20.1-bin-win32-py26.zip安装版

    例如,发送POST数据可以这样做: ```python postfields = {'key1': 'value1', 'key2': 'value2'} c.setopt(c.POSTFIELDS, postfields) ``` 此外,pycurl还可以与Python的`BufferedWriter`类结合,实现数据的实时...

Global site tag (gtag.js) - Google Analytics