• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python Pycurl的属性与方法案例详解

    Pycurl包是一个libcurl的Python接口,由C语言编写的,功能强大,速度快。由于pycurl的属性和方法太多了,写这篇博文记录一下pycurl的属性和方法。

    正常安装

    pip install pycurl

    如果出现问题,可以按照系统版本搜索安装方法,比如centos7.1 安装pycurl

    通用请求方法

    import pycurl,urllib
    from io import BytesIO
     
    url = 'http://www.baidu.com'
     
    headers = [
    	"User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 5_0 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A334 Safari/7534.48.3",
    ]
     
    data = {
    	"cityListName":"",
    	"trade": ""
    	}
     
    c = pycurl.Curl()	#通过curl方法构造一个对象
    #c.setopt(pycurl.REFERER, 'http://www.baidu.com/')	#设置referer
    c.setopt(pycurl.FOLLOWLOCATION, True)	#自动进行跳转抓取
    c.setopt(pycurl.MAXREDIRS,5)			#设置最多跳转多少次
    c.setopt(pycurl.CONNECTTIMEOUT, 60)		#设置链接超时
    c.setopt(pycurl.TIMEOUT,120)			#下载超时
    c.setopt(pycurl.ENCODING, 'gzip,deflate')	#处理gzip内容
    # c.setopt(c.PROXY,ip)	# 代理
    c.fp = BytesIO()	
    c.setopt(pycurl.URL, url)	#设置要访问的URL
    c.setopt(pycurl.HTTPHEADER,headers)		#传入请求头
    c.setopt(pycurl.POST, 1)
    c.setopt(pycurl.POSTFIELDS, urllib.urlencode(data))		#传入POST数据
    c.setopt(c.WRITEFUNCTION, c.fp.write)	#回调写入字符串缓存
    c.perform()		
     
    code = c.getinfo(c.HTTP_CODE)	#返回状态码
    html = c.fp.getvalue()	#返回源代码
     
    print c.getinfo(c.TOTAL_TIME)
    

    GET请求方法

    c = pycurl.Curl()   #通过curl方法构造一个对象
    c.setopt(pycurl.FOLLOWLOCATION, True)   #自动进行跳转抓取
    c.setopt(pycurl.MAXREDIRS,5)            #设置最多跳转多少次
    c.setopt(pycurl.CONNECTTIMEOUT, 60)     #设置链接超时
    c.setopt(pycurl.TIMEOUT,120)            #下载超时
    c.setopt(pycurl.ENCODING, 'gzip,deflate')   #处理gzip内容
    # c.setopt(c.PROXY,ip)  # 代理
    c.fp = BytesIO()  
    c.setopt(pycurl.URL, url)   #设置要访问的URL
    c.setopt(pycurl.USERAGENT,ua) #传入ua
    # c.setopt(pycurl.HTTPHEADER,self.headers)     #传入请求头
    c.setopt(c.WRITEFUNCTION, c.fp.write)   #回调写入字符串缓存
    c.perform()     
    code = c.getinfo(c.HTTP_CODE)   #返回状态码
    html = c.fp.getvalue()  #返回源代码

    POST请求方法

    c = pycurl.Curl()   #通过curl方法构造一个对象
    c.setopt(pycurl.FOLLOWLOCATION, True)   #自动进行跳转抓取
    c.setopt(pycurl.MAXREDIRS,5)            #设置最多跳转多少次
    c.setopt(pycurl.CONNECTTIMEOUT, 60)     #设置链接超时
    c.setopt(pycurl.TIMEOUT,120)            #下载超时
    c.setopt(pycurl.ENCODING, 'gzip,deflate')   #处理gzip内容
    # c.setopt(c.PROXY,ip)  # 代理
    c.fp = BytesIO()  
    c.setopt(pycurl.URL, url)   #设置要访问的URL
    c.setopt(pycurl.USERAGENT,ua ) #传入User-Agent
    # c.setopt(pycurl.HTTPHEADER,headers)     #传入请求头
    c.setopt(pycurl.POST, 1)
    c.setopt(pycurl.POSTFIELDS, urllib.parse.urlencode(data))
    c.setopt(c.WRITEFUNCTION, c.fp.write)   #回调写入字符串缓存
    c.perform()     
    code = c.getinfo(c.HTTP_CODE)   #返回状态码
    html = c.fp.getvalue()  #返回源代码

    windows访问https

    windows 访问https的方法,需要证书

    import certifi
    c.setopt(pycurl.CAINFO, certifi.where())

    获取网页多重跳转之后的地址

    c.getinfo(pycurl.EFFECTIVE_URL) 获取网页的最终地址

    记录Cookie

    c.setopt(pycurl.COOKIEFILE, "cookie_file_etherscan") #读取cookie
    c.setopt(pycurl.COOKIEJAR, "cookie_file_etherscan") #设置cookie

    其他属性

    pycurl的部分API:

    pycurl.Curl() #创建一个pycurl对象的方法
    pycurl.Curl(pycurl.URL, http://www.google.com.hk) #设置要访问的URL
    pycurl.Curl().setopt(pycurl.MAXREDIRS, 5) #设置最大重定向次数
    pycurl.Curl().setopt(pycurl.CONNECTTIMEOUT, 60)
    pycurl.Curl().setopt(pycurl.TIMEOUT, 300) #连接超时设置
    pycurl.Curl().setopt(pycurl.USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)") #模拟浏览器
    pycurl.Curl().perform() #服务器端返回的信息
    pycurl.Curl().getinfo(pycurl.HTTP_CODE) #查看HTTP的状态 类似urllib中status属性
     
     
    pycurl.NAMELOOKUP_TIME 域名解析时间
    pycurl.CONNECT_TIME 远程服务器连接时间
    pycurl.PRETRANSFER_TIME 连接上后到开始传输时的时间
    pycurl.STARTTRANSFER_TIME 接收到第一个字节的时间
    pycurl.TOTAL_TIME 上一请求总的时间
    pycurl.REDIRECT_TIME 如果存在转向的话,花费的时间
    pycurl.HTTP_CODE HTTP 响应代码
    pycurl.REDIRECT_COUNT 重定向的次数
    pycurl.SIZE_UPLOAD 上传的数据大小
    pycurl.SIZE_DOWNLOAD 下载的数据大小
    pycurl.SPEED_UPLOAD 上传速度
    pycurl.HEADER_SIZE 头部大小
    pycurl.REQUEST_SIZE 请求大小
    pycurl.CONTENT_LENGTH_DOWNLOAD 下载内容长度
    pycurl.CONTENT_LENGTH_UPLOAD 上传内容长度
    pycurl.CONTENT_TYPE 内容的类型
    pycurl.RESPONSE_CODE 响应代码
    pycurl.SPEED_DOWNLOAD 下载速度
    pycurl.INFO_FILETIME 文件的时间信息
    pycurl.HTTP_CONNECTCODE HTTP 连接代码
    

    参考文档

    http://pycurl.io/docs/latest/quickstart.html

    到此这篇关于Python Pycurl的属性与方法案例详解的文章就介绍到这了,更多相关Python Pycurl的属性与方法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 解决python3 安装完Pycurl在import pycurl时报错的问题
    • Python安装pycurl失败的解决方法
    • python pycurl验证basic和digest认证的方法
    • 简单谈谈Python的pycurl模块
    • Python的pycurl包用法简介
    上一篇:OpenCV半小时掌握基本操作之滤波器
    下一篇:实现Windows下设置定时任务来运行python脚本
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python Pycurl的属性与方法案例详解 Python,Pycurl,的,属性,与,方法,