Pthon脚本运行慢如何优化
请大神们分析下这个python脚本为什么会运行这么慢.
初衷: 公司有个料号系统, 在网站上输入料号就能查询相关的资料, 一般情况下, 我会ctrl+c, 打开网站, ctrl+v, 点击查询, 得到资料.
脚本实现方式: 我ctrl+c料号, 脚本调用windows的clipboard API, 拿到所复制的text, 然后用requests模拟正常浏览器的GET, 最后通过webbrowser模块打开得到的HTML.
问题: 速度很慢, 可以说比我手动在浏览器上看要慢. 基本超过6s..有什么办法可以改良呢?
谢谢!
"""
work flow: get text content like "23.34239.394"( PN format) from
clipboard, making a GET request using requests, with URL parameter
PartNumber=text, and then open its html text with webbrowser module.
"""
import ctypes
import requests
import os
import webbrowser
def spec():
# clipboard format TEXT defined by MS
CF_TEXT = 1
kernel32 = ctypes.windll.kernel32
user32 = ctypes.windll.user32
user32.OpenClipboard(0)
if user32.IsClipboardFormatAvailable(CF_TEXT):
data = user32.GetClipboardData(CF_TEXT)
data_locked = kernel32.GlobalLock(data)
text = ctypes.c_char_p(data_locked)
print(text.value)
kernel32.GlobalUnlock(data_locked)
else:
print('no text in clipboard')
user32.CloseClipboard()
# decode bytes to unicode string
s = text.value.decode()
# fork a browser GET request
url = 'http://wpqssvr.wistron.com.tw:7001/wpqs/servlet/COM.qpart.Attachment'
para = {'PartNumber': s}
h = {
'Accept': 'text/html',
'Connection': 'keep-alive',
'Host': 'wpqssvr.wistron.com.tw:7001',
'Accept-Language': 'zh-TW',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Trident/7.0;rv:11.0) like Gecko'
}
# make the request and stores the html into temp file, open with IE
try:
r = requests.get(url, params = para, headers=h)
path = os.path.abspath('temp.html')
url = 'file://' + path
with open(path, 'w') as f:
f.write(r.text)
webbrowser.open_new_tab(url)
except:
print('open url or open file fails')
raise
exit()
if __name__ == '__main__':
spec()
你可以打一下begin_time ,end_time看看,分析是那块代码执行比较耗时,猜测是网络请求那块比较耗时
玩蛇网文章,转载请注明出处和文章网址:https://www.iplaypy.com/wenda/wd18962.html
相关文章 Recommend
- • apache运行webpy项目遇到换行符无故增加的恼人问题
- • 问浏览器地址栏如何执行虚拟主机脚本关于环境
- • Python语言运行GUI程序的工作效率高不高?
- • 自动检测当前运行环境版本的python方法是什么
- • python2.7运行报Backup FAILED错误是什么问题
- • 分析python源码找到新闻阅读器无法运行的原因,
- • 我的网站爬虫python代码为什么不能正常运行,哪里
- • python运行爬虫程序时间如何控制?
- • Ubuntu火狐浏览器可以用python脚本来控制吗?
- • 需要可以暂停python命令运行的方法
- • PyCharm代码可以正常运行,却总有警告什么原因
- • 需要一个python脚本返回的思路,求分享
您现在的位置: 玩蛇网首页 > Python问题解答 > 正文内容
我要分享到:
必知PYTHON教程 Must Know PYTHON Tutorials
- • python 解释器
- • python idle
- • python dir函数
- • python 数据类型
- • python type函数
- • python 字符串
- • python 整型数字
- • python 列表
- • python 元组
- • python 字典
- • python 集合
- • python 变量
- • python print
- • python 函数
- • python 类定义
- • python import
- • python help
- • python open
- • python 异常处理
- • python 注释
- • python continue
- • python pass
- • python return
- • python global
- • python assert
- • python if语句
- • python break
- • python for循环
- • python while循环
- • python else/elif
- • lambda匿名函数
必知PYTHON模块 Must Know PYTHON Modules
- • os 模块
- • sys 模块
- • re 正则表达式
- • time 日期时间
- • pickle 持久化
- • random 随机
- • csv 模块
- • logging 日志
- • socket网络通信
- • json模块
- • urlparse 解析URL
- • urllib 模块
- • urllib2 模块
- • robotparser 解析
- • Cookie 模块
- • smtplib 邮件
- • Base64 编码
- • xmlrpclib客户端
- • string 文本
- • Queue 线程安全
- • math数学计算
- • linecache缓存
- • threading多线程
- • sqlite3数据库
- • gzip压缩解压
最新内容 NEWS
- • django app提供pv信息的方法是什么
- • Django项目版本升级如何操作?
- • django较多数据传递如何优雅的呈现
- • django1.7获取参数问题求助
- • Django1.7使用内置comment遇到问题
- • python mysql数据库做insert操作时报_mysql_ex
- • 关于python mysql的duplicate insert机制的疑问
- • pymongo使用insert函数批量插入被中断要怎么
- • Python程序员解决棘手问题的常用库
- • 求助关于restfull api接口几个问题
图文精华 RECOMMEND
-
django1.7获取参数问题求助
-
Python程序员解决棘手问题的常用库
-
求问str()同__str__原理上有什么不同
-
scrapy框架里面用link extractor怎么能
-
python {}.fromkeys创建字典append添加操
-
python3 类型Type str doesn't support th
热点文章 HOT
- 学习Python有什么好的书籍推荐?
- Python匿名函数 Lambda表达式作用
- Python与Java、C、Ruby、PHP等编程语言有什么
- Python 正则中文网页字符串提取问题
- 如何为实时性应用存取经纬度?django my
- 想用python做个客户端,在二维码登录这个地
- 有让IDE可识别Python函数参数类型的方法吗
- Python字符串转换成列表正则疑问