`
ryan.liu
  • 浏览: 136418 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

PyCURL访问外网

阅读更多

用途当然是模拟浏览器

# -*- coding: utf-8 -*-

"""
使用pycurl发起HTTP访问
"""

import pycurl, urllib
import StringIO


def curl(url, method="GET", proxy=(), verbose=0, cookie_file="", **kwargs):
    #proxy = ("www.test.com:8080", "SOCKS5", "user:pass")

    req = pycurl.Curl()
    req.setopt(pycurl.FOLLOWLOCATION, 1)
    req.setopt(pycurl.MAXREDIRS, 5)
    req.setopt(pycurl.CONNECTTIMEOUT, 60)
    req.setopt(pycurl.TIMEOUT, 600)
    req.setopt(pycurl.HTTPPROXYTUNNEL, 1)
    req.setopt(pycurl.VERBOSE, verbose)
    agent = kwargs.pop("agent", "Mozilla/4.0")
    req.setopt(pycurl.USERAGENT, agent)
    if cookie_file:
        req.setopt(pycurl.COOKIEJAR, cookie_file)

    req.fp = StringIO.StringIO()
    req.setopt(pycurl.WRITEFUNCTION, req.fp.write)
    data = urllib.urlencode(kwargs)
    if method.upper() == "GET":
        if data:
            url = url + "?" + data
        req.setopt(pycurl.URL, url)
    else:
        req.setopt(pycurl.URL, url)
        req.setopt(pycurl.POSTFIELDS, data)
    if proxy:
        host_port, sock_type, user_pass = proxy
        req.setopt(pycurl.PROXY, host_port)
        req.setopt(pycurl.PROXYTYPE, sock_type)
        req.setopt(pycurl.PROXYUSERPWD, user_pass)

    req.perform()
    return req.fp.getvalue()

 

 

分享到:
评论

相关推荐

    pycurl 统计网络传输时间

    pycurl 统计网络传输时间,下载数据包大小,建立连接时间,平均下载速度

    pycurl for python2.7

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

    Pycurl的安装与使用.doc

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

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

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

    pycurl+pyspider+phabtomjs

    在IT行业中,网络爬虫是数据获取的重要工具,而`pycurl`、`pyspider`和`PhantomJS`都是在这个领域中扮演关键角色的库或工具。接下来,我们将详细探讨这三个组件以及它们如何协同工作。 1. **pycurl**: `pycurl`是...

    pycurl X64 python安装包

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

    pycurl-7.43.0.2 Windows64位安装包

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

    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....

    python常用pycurl-7.43.0.1

    5. **代理支持**:通过配置代理服务器,可以在受限制的网络环境中访问互联网。 6. **SSL加密**:支持HTTPS协议,确保数据传输的安全性。 7. **文件上传**:可以将本地文件作为请求的一部分发送到服务器。 8. **多...

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

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

    PyPI 官网下载 | pycurl-7.43.0.5-cp35-cp35m-win_amd64.whl

    资源来自pypi官网。 资源全名:pycurl-7.43.0.5-cp35-cp35m-win_amd64.whl

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

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

    pycurl-7.18.2.tar.gz

    《Python的CURL库:PyCurl深度解析》 PyCurl是Python中一个非常重要的库,它提供了对libcurl的接口,使Python程序能够处理各种网络协议,如HTTP、HTTPS、FTP、FTPS等。libcurl是一个强大的URL传输库,而PyCurl则将...

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

    在这个压缩包中,我们有两个不同版本的`pycurl`安装文件:`pycurl-7.43.0.3-cp27-cp27m-win_amd64.whl`和`pycurl-7.43.0.3-cp27-cp27m-win32.whl`。这两个文件分别对应于64位和32位的Windows系统。在选择合适的版本...

    pycurl-ssl-7.19.0.win32-py2.7

    《Python网络库pycurl-SSL 7.19.0 for Win32与Python 2.7详解》 在Python编程中,pycurl是一个非常重要的库,它提供了对libcurl库的接口,使Python程序员能够方便地进行HTTP、HTTPS、FTP等协议的网络数据传输。...

    pycurl-7.43.0.3-cp37-cp37m-win32.whl

    总之,pycurl是Python中一个强大的网络访问工具,其全面的协议支持、灵活的配置选项以及高效的性能,使其成为Python网络编程不可或缺的一部分。对于使用32位Windows系统的Python 3.7用户来说,这个特定版本的whl文件...

    pycurl-7.43.0.2-cp36-cp36m-win_amd64.whl

    《Python中的PyCurl库与Pyspider框架:安装与使用详解》 在Python的开发环境中,有时候我们需要处理HTTP和HTTPS请求,这时PyCurl库就显得尤为重要。PyCurl是一个Python接口,用于libcurl,一个强大的URL传输库。在...

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

    这里,`c.URL`是pycurl中的常量,代表你要访问的URL。 4. 将数据写入文件或内存: ```python with open('output.html', 'wb') as f: c.setopt(c.WRITEDATA, f) ``` `c.WRITEDATA`设置输出数据的目标,这里是一个...

    pycurl-ssl-7.19.0.win32-py2.6.msi

    python pycurl win32 python2.6 msi

Global site tag (gtag.js) - Google Analytics