Python中Pycurl属性与方法的示例分析
发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,小编给大家分享一下Python中Pycurl属性与方法的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Pycurl
千家信息网最后更新 2025年01月19日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安全错误
数据库的锁怎样保障安全
常见计算机网络技术价位
学电脑软件开发需要什么学历
凯威网络技术
益阳软件开发价格
广西凭祥网络安全宣传
网络技术应用赛试题
看不懂网络安全服务
qt里面怎么使用数据库
专业放心的服务器主动管理
j数据库返回空对象时显示空字段
网络安全十二五规划
数据库在哪查询
mysql备份成两个数据库
网络安全工程师零基础好考吗
选修课选数据库技术怎么样
PC软件开发 知乎
江西三维人口gis系统软件开发
应用到数据库的软件
环保网络技术供应商家
查看数据库表格里面的数据
学校电脑哪个是服务器
大连手机软件开发公司
服务器装机怎么进入系统
超算服务器维修需要多长时间
常见的图形数据库包括什么
女性软件开发几年
一个软件开发成本一般需要多少钱
网络安全南大门
吉化网络技术有限公司
服务器无限循环重启硬盘灯不亮