前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python使用pycurl获取web连

python使用pycurl获取web连

作者头像
py3study
发布于 2020-01-07 07:06:09
发布于 2020-01-07 07:06:09
1.2K00
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#!/usr/bin/python
# _*_ coding:utf-8 _*_
import sys,os
import time
import pycurl

url = "http://www.qq.com"   #探测的目标URL
c = pycurl.Curl()   #创建一个Curl对象
c.setopt(c.URL,url)    #定义请求的URL常量
c.setopt(c.CONNECTTIMEOUT,5)   #定义请求连接的等待时间
c.setopt(c.TIMEOUT,5)      #定义请求超时时间
c.setopt(c.NOPROGRESS,1)       #屏蔽下载进度条
c.setopt(c.FORBID_REUSE,1)     #完成交互后强制断开连接,不重用
c.setopt(c.MAXREDIRS,1)        #指定HTTP重定向的最大数为1
c.setopt(c.DNS_CACHE_TIMEOUT,30)       #设置保存DNS信息的时间为30秒
#创建一个文件对象,以"wb"方式打开,用来存储返回的http头部及页面内容
indexfile = open(os.path.dirname(os.path.realpath(__file__))+"/content.txt","wb")
c.setopt(pycurl.WRITEHEADER, indexfile)     #将返回的HTTP HEADER定向到indexfile文件
c.setopt(pycurl.WRITEDATA, indexfile)       #将返回的HTML内容定向到indexfile文件对象
try:
    c.perform()                            #提交内容
except Exception as e:
    print ("connection error:"+str(e))
    indexfile.close()
    c.close()
    sys.exit()

NAMELOOKUP_TIME = c.getinfo(c.NAMELOOKUP_TIME)  #获取DNS解析时间
CONNECT_TIME = c.getinfo(c.CONNECT_TIME)    #获取建立连接时间
PRETRANSFER_TIME = c.getinfo(c.PRETRANSFER_TIME)    #获取从建立连接到准备传输所消耗的时间
STARTTRANSFER_TIME = c.getinfo(c.STARTTRANSFER_TIME)    #获取从建立连接到传输开始消耗的时间
TOTAL_TIME = c.getinfo(c.TOTAL_TIME)    #获取传输的总时间
HTTP_CODE = c.getinfo(c.HTTP_CODE)      #获取HTTP状态码
SIZE_DOWNLOAD = c.getinfo(c.SIZE_DOWNLOAD)      #获取下载数据包的大小
HEADER_SIZE = c.getinfo(c.HEADER_SIZE)      #获取HTTP头部大小
SPEED_DOWNLOAD = c.getinfo(c.SPEED_DOWNLOAD)    #获取平均下载速度
#打印输出相关数据
print ("HTTP状态码:%s" % (HTTP_CODE))
print ("DNS解析时间:%.2f ms" % (NAMELOOKUP_TIME*1000))
print ("建立连接时间:%.2f ms" % (CONNECT_TIME*1000))
print ("准备传输时间:%.2f ms" % (PRETRANSFER_TIME*1000))
print ("传输开始时间:%.2f ms" % (STARTTRANSFER_TIME*1000))
print ("传输结束总时间:%.2f ms" % (TOTAL_TIME*1000))
print ("下载数据包大小:%d bytes/s" % (SIZE_DOWNLOAD))
print ("HTTP头部大小:%d bytes/s" % (HEADER_SIZE))
print ("平均下载速度:%d bytes/s" % (SPEED_DOWNLOAD))
#关闭文件及curl对象
indexfile.close()
c.close()

pycurl官网地址

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/09/10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
测试网站页面网速的一个简单Python脚本
无聊之余,下面分享一个Python小脚本:测试网站页面访问速度 [root@huanqiu ~]# vim pywww.py #!/usr/bin/python # coding: UTF-8 import StringIO,pycurl,sys,os,time class idctest: def __init__(self): self.contents = '' def body_callback(self,buf): self.content
洗尽了浮华
2018/01/22
3.6K0
黑帽编程应用之Python1
在安全工作者或者渗透测试中,我们常常需要自己造轮子来写自动化利用的脚本,所以Python脚本能更快的帮助我们编写响应扫描器以及可利用脚本;
全栈工程师修炼指南
2020/10/23
1.2K0
黑帽编程应用之Python1
python3 通过 pycurl 检测
由于python3 对StringIO 集成到io 模块中了,所有python3 import StringIO 改成了 import io,pycurl.Curl() 初始化对象C ,其 属性WRITEFUNCTION 要求传递参数是byte,b.write 需要初始化成io.BytesIO()
py3study
2020/01/03
5820
Python pycurl模块 学习
pycurl模块的安装方法如下: easy_install pycurl #easy_install安装方法 pip install pycurl #pip安装方法 #源码安装方法 # 要求curl-config包支持,需要源码方式重新安装curl # wget http://curl.haxx.se/download/curl-7.36.0.tar.gz # tar -zxvf curl-7.36.0.tar.gz # cd curl-7.36.0 # ./configure # make && mak
py3study
2020/01/08
2.9K0
学习CURL扩展功能的使用(一)
其实 CURL 这个扩展本来也不打算写得,毕竟这个也是大家最常用的功能之一的。不过既然是在刷文档,学习到了就分享出来吧,不要陷入“知识的诅咒”。本身自己的知识体系就不完整,说不定也有很多小伙伴和我一样只是平常追求业务快速开发而简单地使用,并没有深入地去了解过。今天,我们就来深入地了解一下 CURL 吧。
硬核项目经理
2021/12/20
4910
linux curl wget 测速
CURL测速 curl -o /dev/null -w "\n DNS 解析域名的时间\n namelookup:"%{time_namelookup}"\n client和server端建立TCP 连接的时间\n time_connect:"%{time_connect}"\n 从client发出请求;到web的server 响应第一个字节的时间\n time_starttransfer:"%{time_starttransfer}"\n client发出请求;到web的server发送会所有的相应数据的
葫芦
2020/04/23
8K0
Python 库之pycurl的安装与使用方法
pycurl的简介 PyCURL是一个Python接口,它是多协议文件传输库的LIbCURL。类似于URLLIB Python模块,PyCURL可以用来从Python程序获取URL所标识的对象。然而,除了简单的获取,PyCURL公开了LIbCURL的大部分功能,包括:速度-LIbCURL非常快,并且PycURL作为LiCURL之上的薄包装器也是非常快的。PycURL被标榜为比请求快几倍。特性包括多协议支持、SSL、身份验证和代理选项。PyCURL支持大多数LBCURL的回调。多和共享接口。用于网络操作的套接字,允许将PyCURL集成到应用程序的I/O循环中(例如,使用TrnADO)。 一旦安装了PycURL,我们就可以执行网络操作。最简单的方法是通过URL检索资源。要用PycURL发布网络请求,需要以下步骤:创建PyCURL.CURL实例。使用SETopt设置选项。调用执行来执行操作。 PyCURL是一个Python接口到LyCURL。PyCURL可以用来从Python程序中获取URL所标识的对象,类似于URLLIB Python模块。PyCURL是成熟的,非常快,并且支持很多特征。 LIbCURL是一个免费且易于使用的客户端URL传输库,支持FTP、FTP、HTTP、HTTPS、SCP、SFTP、TFTP、telnet、DICT、LDAP、LDAP、文件、IMAP、SMTP、POP3和RTSP。LIbCURL支持SSL证书、HTTP POST、HTTP PUT、FTP上传、基于HTTP表单的上传、代理、Cookie、用户+口令认证(Basic、摘要、NTLM、协商、KeBeOS4)、文件传输恢复、HTTP代理隧道等! LIbCURL是高度可移植的,它构建和工作在许多平台上,包括Solaris、NETBSD、FreeBSD、OpenBSD、达尔文、HPUX、IIX、AIX、TUR64、Linux、UNIX、HUD、Windows、AMIGA、OS/ 2、BeOs、Mac OS X、ULTRIX、QNX、OpenVMS、RISC OS、Novell NETWORD、DOS等等。
菲宇
2019/06/13
1.8K0
PHP编程中使用CURL发送HTTP请求的基本流程
在PHP编程中,有时候需要编程技术人员使用CURL的PHP扩展完成一个HTTP请求的发送,对于这个操作来说,很多初学者都会遇到很多苦难,那么下面就来为大家讲解一下。一般有以下几个步骤:
猿哥
2019/07/25
1.3K0
说说 Linux 的 curl 命令
比如上面的 imlht.com.test,一般情况下你是没有这个证书的,但是你又想测试 10.43.1.101 的 /user 接口,此时可以直接跳过测接口的内容。
仁扬
2023/07/11
2240
学习CURL扩展功能的使用(一)「建议收藏」
其实 CURL 这个扩展本来也不打算写得,毕竟这个也是大家最常用的功能之一的。不过既然是在刷文档,学习到了就分享出来吧,不要陷入“知识的诅咒”。本身自己的知识体系就不完整,说不定也有很多小伙伴和我一样只是平常追求业务快速开发而简单地使用,并没有深入地去了解过。今天,我们就来深入地了解一下 CURL 吧。
全栈程序员站长
2022/09/06
5180
Python学习-pycurl模块
pycurl是一个用c语言编写的libcurl Python实现,功能非常强大,支持操作协议有FTP,HTTP,HTTPS,TELNET等。
py3study
2020/01/07
4810
腾讯EdgeOne产品测评体验—Web安全的攻与防:云端防护一体化
EdgeOne,作为腾讯云推出的全新CDN解决方案,集合了域名解析、智能加速、四层加速、安全防护以及边缘函数计算等多元化服务。自今年8月开放订阅以来,越来越多的网站选择EdgeOne作为他们的加速与防护伙伴,其受欢迎程度可见一斑。
德宏大魔王
2024/04/16
5.2K0
腾讯EdgeOne产品测评体验—Web安全的攻与防:云端防护一体化
curl 命令常用场景
curl 命令向 www.qq.com 发出 GET 请求,服务器返回的内容会在命令行输出。
Yorkyu
2022/03/22
5910
curl 命令常用场景
Linux - curl -w 参数详解
当 curl 没有指定 -L、--location 参数跟随重定向时,此变量将显示重定向实将跳转的实际 URL
小菠萝测试笔记
2021/06/17
5.7K0
Linux - curl -w 参数详解
curl命令查看响应时间
curl -w "%{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}" -X GET "http://IP地址+端口/?参数" curl -w "%{time_namelookup}::%{time_connect}::%{time_starttransfer}::%{time_total}::%{speed_download}" -X POST -H "Content-Type: application/json" -d '{"test1":"hah","test2":"qwe","test3":"111"}' "http://IP地址+端口/?参数"
oktokeep
2024/10/09
1580
一个较为完整的PHP cURL封装方法-JT_curl
岳泽以
2024/09/01
2080
zabbix 自动发现 python
disk name #/usr/bin/python #This script is used to discovery disk on the server import subprocess import json args="cat /proc/diskstats |grep -E '\ssd[a-z]\s|\sxvd[a-z]\s|\svd[a-z]\s'|awk '{print $3}'|sort|uniq 2>/dev/null" t=subprocess.Popen(args,shell=Tr
py3study
2020/01/09
6650
CDN排障系列:curl的高级使用姿势
curl 是一个功能非常强大的开源软件,支持FTP,HTTP,HTTPS,Telnet等多种协议。对于运维、开发同学来说,它是工作中不可缺少的排障利器。它的基本使用姿势请参考文档https://cloud.tencent.com/developer/article/1419809
淡淡的味道
2019/07/05
1.1K0
CDN排障系列:curl的高级使用姿势
用PHP编写Nagios插件
Nagios插件是Nagios提供的一种可通过扩展方式部署的组件,该插件支持Java、C\C++、php等多种语言开发,操作员通过修改配置文件和相应参数,就能很方便地将该插件集成到Nagios中,实现对目标系统的监控。
星哥玩云
2022/06/30
1.4K0
将HTTP请求对象转成curl命令行
基本思路是复制浏览器请求为curl命令行,然后解析命令行组装成HttpRequestBase对象,然后结合FunTester性能测试框架进行测试。
FunTester
2021/03/11
2.7K0
相关推荐
测试网站页面网速的一个简单Python脚本
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文