本文主要是介绍PyCURL访问外网,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
用途当然是模拟浏览器
# -*- coding: utf-8 -*-"""
使用pycurl发起HTTP访问
"""import pycurl, urllib
import StringIOdef 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 + "?" + datareq.setopt(pycurl.URL, url)else:req.setopt(pycurl.URL, url)req.setopt(pycurl.POSTFIELDS, data)if proxy:host_port, sock_type, user_pass = proxyreq.setopt(pycurl.PROXY, host_port)req.setopt(pycurl.PROXYTYPE, sock_type)req.setopt(pycurl.PROXYUSERPWD, user_pass)req.perform()return req.fp.getvalue()
这篇关于PyCURL访问外网的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!