Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,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 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
python3 通过 pycurl 检测
由于python3 对StringIO 集成到io 模块中了,所有python3 import StringIO 改成了 import io,pycurl.Curl() 初始化对象C ,其 属性WRITEFUNCTION 要求传递参数是byte,b.write 需要初始化成io.BytesIO()
py3study
2020/01/03
5840
腾讯EdgeOne产品测评体验—Web安全的攻与防:云端防护一体化
EdgeOne,作为腾讯云推出的全新CDN解决方案,集合了域名解析、智能加速、四层加速、安全防护以及边缘函数计算等多元化服务。自今年8月开放订阅以来,越来越多的网站选择EdgeOne作为他们的加速与防护伙伴,其受欢迎程度可见一斑。
德宏大魔王
2024/04/16
5.2K0
腾讯EdgeOne产品测评体验—Web安全的攻与防:云端防护一体化
PHP编程中使用CURL发送HTTP请求的基本流程
在PHP编程中,有时候需要编程技术人员使用CURL的PHP扩展完成一个HTTP请求的发送,对于这个操作来说,很多初学者都会遇到很多苦难,那么下面就来为大家讲解一下。一般有以下几个步骤:
猿哥
2019/07/25
1.3K0
测试网站页面网速的一个简单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
一个较为完整的PHP cURL封装方法-JT_curl
岳泽以
2024/09/01
2400
学习CURL扩展功能的使用(一)
其实 CURL 这个扩展本来也不打算写得,毕竟这个也是大家最常用的功能之一的。不过既然是在刷文档,学习到了就分享出来吧,不要陷入“知识的诅咒”。本身自己的知识体系就不完整,说不定也有很多小伙伴和我一样只是平常追求业务快速开发而简单地使用,并没有深入地去了解过。今天,我们就来深入地了解一下 CURL 吧。
硬核项目经理
2021/12/20
5000
学习CURL扩展功能的使用(一)「建议收藏」
其实 CURL 这个扩展本来也不打算写得,毕竟这个也是大家最常用的功能之一的。不过既然是在刷文档,学习到了就分享出来吧,不要陷入“知识的诅咒”。本身自己的知识体系就不完整,说不定也有很多小伙伴和我一样只是平常追求业务快速开发而简单地使用,并没有深入地去了解过。今天,我们就来深入地了解一下 CURL 吧。
全栈程序员站长
2022/09/06
5260
Python学习-pycurl模块
pycurl是一个用c语言编写的libcurl Python实现,功能非常强大,支持操作协议有FTP,HTTP,HTTPS,TELNET等。
py3study
2020/01/07
4850
黑帽编程应用之Python1
在安全工作者或者渗透测试中,我们常常需要自己造轮子来写自动化利用的脚本,所以Python脚本能更快的帮助我们编写响应扫描器以及可利用脚本;
全栈工程师修炼指南
2020/10/23
1.2K0
黑帽编程应用之Python1
CDN排障系列:curl的高级使用姿势
curl 是一个功能非常强大的开源软件,支持FTP,HTTP,HTTPS,Telnet等多种协议。对于运维、开发同学来说,它是工作中不可缺少的排障利器。它的基本使用姿势请参考文档https://cloud.tencent.com/developer/article/1419809
淡淡的味道
2019/07/05
1.1K0
CDN排障系列:curl的高级使用姿势
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
6700
Linux - curl -w 参数详解
当 curl 没有指定 -L、--location 参数跟随重定向时,此变量将显示重定向实将跳转的实际 URL
小菠萝测试笔记
2021/06/17
5.7K0
Linux - curl -w 参数详解
curl 命令常用场景
curl 命令向 www.qq.com 发出 GET 请求,服务器返回的内容会在命令行输出。
Yorkyu
2022/03/22
6010
curl 命令常用场景
记几个Curl工具使用技巧
1. 输出内容自动换行: curl  -w "\n"  https://www.seekerhcl.cn/ ---- 2. 指定网卡作为出口: curl --interface eth0 ip.sb 或 curl --int 192.168.0.10 ip.sb (此处IP是网卡对应IP地址) ---- 3. 打印请求站点的耗时情况: curl -o /dev/null -s -w %{http_code}::%{time_namelookup}::%{time_connect}::%{time_start
大大大黑白格子
2020/06/10
2.7K0
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
1860
用PHP编写Nagios插件
Nagios插件是Nagios提供的一种可通过扩展方式部署的组件,该插件支持Java、C\C++、php等多种语言开发,操作员通过修改配置文件和相应参数,就能很方便地将该插件集成到Nagios中,实现对目标系统的监控。
星哥玩云
2022/06/30
1.5K0
将HTTP请求对象转成curl命令行
基本思路是复制浏览器请求为curl命令行,然后解析命令行组装成HttpRequestBase对象,然后结合FunTester性能测试框架进行测试。
FunTester
2021/03/11
2.7K0
【转】使用CURL检测Client侧发起的HTTP请求各阶段时间
参考原文地址: https://blog.51cto.com/h2ofly/1957171
保持热爱奔赴山海
2019/09/17
1.6K0
【转】使用CURL检测Client侧发起的HTTP请求各阶段时间
使用 cURL 测量网站响应时间
内容整理自:https://blog.cloudflare.com/a-question-of-timing/,其中还有 chrome 的测量方式,有兴趣的朋友可以看一下。
dys
2018/11/30
2K0
使用 cURL 测量网站响应时间
相关推荐
Python pycurl模块 学习
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验