PyCURL访问外网

简介: 用途当然是模拟浏览器 # -*- coding: utf-8 -*- """ 使用pycurl发起HTTP访问 """ import pycurl, urllib import StringIO def curl(url, method="GET", prox...

用途当然是模拟浏览器

# -*- 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()

 

 

目录
相关文章
Curl指定源端口访问网站
Curl指定源端口访问网站
9688 0
|
1月前
|
JavaScript
NodeJs——无法使用内网IP访问
NodeJs——无法使用内网IP访问
24 1
|
4月前
|
网络协议 安全
ensp中nat server 公网访问内网服务器
ensp中nat server 公网访问内网服务器
|
4月前
|
API 网络架构 Python
python验证公网ip与内网ip
python验证公网ip与内网ip
|
4月前
|
Python
pytho2 urllib urllib2 获取本地ip地址和mac地址发送post到指定http服务器
pytho2 urllib urllib2 获取本地ip地址和mac地址发送post到指定http服务器
37 0
|
4月前
|
Python
pytho3 urllib urllib3 获取本地ip地址和mac地址发送post到指定http服务器
pytho3 urllib urllib3 获取本地ip地址和mac地址发送post到指定http服务器
55 0
|
域名解析 网络协议 应用服务中间件
PHP CURL指定host内网通信
PHP CURL指定host内网通信
292 1
PHP CURL指定host内网通信
|
网络协议 安全 网络安全
使用frp端口映射实现内网穿透(SSH、HTTP服务)
使用frp端口映射实现内网穿透(SSH、HTTP服务) 一、下载
|
安全 应用服务中间件 网络安全
【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」
【Python】快速简单搭建HTTP服务器并公网访问「cpolar内网穿透」
474 0
|
JavaScript 前端开发 网络协议
使用Nodejs搭建简单的HTTP服务器 - 内网穿透公网远程访问
使用Nodejs搭建简单的HTTP服务器 - 内网穿透公网远程访问
230 0