• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

python 搞代码 4年前 (2022-01-06) 61次浏览 已收录 0个评论

这篇文章主要介绍了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的状态 类似<i style="color:transparent">来源gaodai$ma#com搞$代*码网</i>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的属性与方法内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网

以上就是Python Pycurl的属性与方法案例详解的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Python Pycurl的属性与方法案例详解

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址