千家信息网

Python中Pycurl属性与方法的示例分析

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,小编给大家分享一下Python中Pycurl属性与方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Pycurl
千家信息网最后更新 2026年11月02日Python中Pycurl属性与方法的示例分析

小编给大家分享一下Python中Pycurl属性与方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

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

正常安装

pip install pycurl

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

通用请求方法

import pycurl,urllibfrom 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/') #设置refererc.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)  #设置要访问的URLc.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)   #设置要访问的URLc.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)   #设置要访问的URLc.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 certific.setopt(pycurl.CAINFO, certifi.where())

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

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

记录Cookie

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

其他属性

pycurl的部分API:

pycurl.Curl() #创建一个pycurl对象的方法pycurl.Curl(pycurl.URL, http://www.google.com.hk) #设置要访问的URLpycurl.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 连接代码

以上是"Python中Pycurl属性与方法的示例分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

方法 内容 时间 属性 大小 对象 状态 代码 字符 字符串 数据 源代码 篇文章 缓存 速度 链接 代理 处理 示例 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司 科技互联网企业 网络科技有限互联网 关于新基建和互联网科技 万易互联网科技有限公司 中国互联网科技发展 互联网科技媒体 奔汉互联网科技 互联网科技大会 科技互联网创业计划书 无锡溥仪互联网科技有限公司 西藏七维空间互联网科技有限公司 互联网科技公司实习生 中国互联网十大科技股排名 洛阳共同富裕互联网科技有限公司 伊宁互联网科技做什么的 银行科技岗属于互联网吗 上海互联网科技公司ppt 华人运通互联网科技公司 小牛互联网科技有限公司地址 北京互联网科技有限公司 互联网公司会议桌创意科技软装饰 中国最先进互联网科技公司 开启互联网科技时代小说 江苏南京365互联网科技 随着互联网科技发展 注册互联网科技公司经营范围大全 兰石爱特工业互联网科技分公司 三亚科技创新互联网基地 广东猫王互联网科技有限公司电话
0