PyAutoGUI,轻松搞定图片上传!
作者 | ssw
来源:Python 技术
最近用vuepress建了个博客,音乐的背景图片需要网络地址。
还有博客自动复用的摘要图片也需地址
开始用的阿里云的免费对象存储oss,但又是登录又是设置读写权限的,稀碎的操作令人疲惫。能不能简单点,自动上传,并且马上能得到文件的网络地址。
于是开始探索轻量级的方案,手动给自己搞一个,一键复制开箱即用的的上传页面:
把文件传到自己的云服务器上,传完后自带文件地址和copy按钮,流程顿时清爽了许多。
接下来的问题是,图片准备好了,十几张,怎么传更轻松点?这时背景音乐响起“王牌飞行员pyautogui请求出战”。优秀,机械重复的操作(如刷新网页、抢票、某些小游戏等)无疑是你的拿手好戏。
实时获取鼠标的当前坐标
这点很重要,因为所有的点击操作都基于坐标,就像selenium的操作基于xpath路径一样:
import time, os
import pyautogui as pag
try:while True:#print('Press Ctrl-C to end')x, y = pag.position() #返回鼠标的坐标print('Position : (%s, %s)' % (x, y)) # 打印坐标time.sleep(1) #每个1s中打印一次 , 并执行清屏os.system('cls') #执行系统清屏指令except KeyboardInterrupt:print('end')
输出如下,鼠标放在哪就会显示哪个地方的x,y坐标:
Position : (937, 668)Position : (1320, 689)Position : (836, 579)Position : (669, 585)
开始上传了
上传的操作页面我已建好:
http://ssw.fit/upload
获取到鼠标坐标就好办了,一路点击,疯狂输出。selenium还有验证码、反爬虫等限制,这个你自己的电脑,还不是想点哪就点哪。先点击“选择文件”按钮,
import pyautogui
pyautogui.click(307, 227)
time.sleep(2.5)# 弹出对话框后,点击路径那一栏,目的是为下一步粘贴路径
pyautogui.click(993, 332)
time.sleep(1.5)
typerwrite键入文件路径
每台电脑的文件路径不一样,让pyautogui的typerwrite输入图片文件夹的路径,不加时间参数,输入速度飞快
# 键入图片路径
pyautogui.typewrite('C:/Users/0717/Pictures/blog/upload')
# 按回车键
pyautogui.hotkey('enter')
time.sleep(1)
双击选中图片
图片的位置是固定的,所以可以取前5或前10张图片的坐标。下次再上传多张图的话,先清空文件夹,把图片拷贝到文件夹就好了
pyautogui.doubleClick(x,y)
点击“上传”按钮
上传需要时间,sleep一会
pyautogui.click(304, 278)
#上传需要时间,预算等多久
if x == 847:#847是第一张图片的x坐标,因为我上传的第一张是gif动图,文件大,上传多等几秒time.sleep(11)
else:time.sleep(2.5)
点击"copy"按钮
图片上传完后会自动生成copy按钮,点击它直接复制文件的网络地址
pyautogui.click(304, 278)
热键ctrl+v,回车,网页访问图片
pyautogui.hotkey('ctrl','v')
time.sleep(0.5)
pyautogui.hotkey('enter')
每张照片传完再自动粘贴地址和网页浏览,看看刚上传的图片多漂亮:
所以,脚本结束前,让我们欣赏美图3秒:
time.sleep(3)
点击浏览器的返回按钮
最后一步,欣赏完,返回主页面进入下一张图片的上传流程!
pyautogui.click(32, 67)
time.sleep(2)
完整脚本
总结一下,这里用到的pyautogui操作:
单击
click
双击
doubleClick
输入文字
typewrite
热键组合
hotkey('ctrl','v')
,热键回车hotkey('enter')
import time
import pyautoguidef auto_upload(x,y,file_path):# 点击”选择文件“按钮pyautogui.click(307, 227)time.sleep(2.5)# 弹出对话框后,点击路径那一栏,目的是为下一步粘贴路径pyautogui.click(993, 332)time.sleep(1.5)# 键入图片路径pyautogui.typewrite(file_path)# 按回车键pyautogui.hotkey('enter')time.sleep(1)# 双击图片pyautogui.doubleClick(x,y)# 等文件出现time.sleep(6)# 点击“上传”按钮pyautogui.click(304, 278)#等几秒传完if x == 847:#847是第一张图片的x坐标,因为我上传的第一张是gif动图,文件大,上传多等几秒time.sleep(11)else:time.sleep(2.5)# 点击“copy”按钮pyautogui.click(297, 545)time.sleep(1)# 点击浏览器的地址栏pyautogui.click(410, 66)# 模拟键盘点击ctrl+v,然后按回车键pyautogui.hotkey('ctrl','v')time.sleep(0.5)pyautogui.hotkey('enter')#欣赏美女3秒time.sleep(3)# 点击浏览器的返回按钮pyautogui.click(32, 67)time.sleep(2)#文件的x,y坐标
file_list = [(847, 489),(965, 490),(1136, 493),(1271, 504),(1391, 498)]
[ auto_upload(f[0],f[1],'C:/Users/0717/Pictures/blog/upload') for f in file_list]
运行过程
上传2张图片,整个脚本运行起来是这样的:
最后一个问题
上传了好几张,都到哪去了?这里可以看到啦:http://ssw.fit/free/
好了,这就是今天分享的全部内容,我们下次再见~
PyAutoGUI,轻松搞定图片上传!相关推荐
- 图片转svg标注_两个免费网站轻松搞定图片文件压缩转化!
关注· 点击蓝字,关注我吧 图片压缩 文件转格式 两个免费网站轻松搞定 免费处理图片文字网站 前几天做公号的时候,上传图片遇到了图片过大无法上传的问题.这两个网站可以看做是兄弟俩,今天推荐给大家,省去 ...
- 网站后台没有提示声怎么办_收藏 | 没有 PS 怎么办?10个在线作图网站,轻松搞定图片设计...
求职技巧 | 职业技能 | 通关考试,关注公众号:职域go Photoshop 已经成为大多数工作需要用到的工具,很多时候我们都要用到它来满足一些简单的排版.图片处理.尺寸调整或者是做一些简单的效果. ...
- 教你如何轻松搞定云上打印管理
摘要:加快自主创新,满足数字化用户多场景文印需求. 本文分享自华为云社区<有了司印云打印,云上打印管理轻松搞定!>,作者:云商店 . 作为与职场和个人办公息息相关的工作场景,打印长期以来都 ...
- 实用技巧丨在线轻松搞定图片无损压缩、批量裁剪、批量加水印!
哈喽大家好,我是搜集菌~ 日常工作中,我们经常会遇到网站限制上传图片大小.图片体积过大不能使用的情况,很多时候要对图片进行压缩.裁剪等来满足需求. 那么问题来了,怎样在尽可能保证画质的情况下将图片压缩 ...
- 怎样轻松搞定图片转ico?
ico图标越来越成为我们职场人士的新宠,一天工作下来,满脑袋都是黄色文件夹的影子.如果把我们自己喜欢的图片设计成ico图标,那可就有意思多了.那怎么才能把图片转ico(https://www.yasu ...
- 一篇文章带你搞定 SpringBoot 上传文件(单文件/多文件/Ajax上传)
文章目录 一.前期配置 二.单文件上传 三.多文件上传 四.Ajax 实现文件上传 五.属性配置 一.前期配置 同样不需要额外配置添加一个 web 功能模块即可 二.单文件上传 上传页面 index. ...
- 掌握这些图片无损压缩工具,轻松搞定图片压缩
对于经常要处理图片素材的小伙伴来说,随着图片数量的增多,不仅容易占用我们电脑的存储空间,还会影响电脑的运行速度.那我们应该怎么解决这个问题呢? 其实只要把图片大小进行压缩,就可以减少它们占据的存储 ...
- 易查分怎么上传成绩?学会这个技巧,轻松搞定
当使用易查分制作查询系统时,许多老师可能对于如何上传成绩感到困惑.有时候,导入成绩到易查分系统后,信息可能无法完全显示,而且也很难找到错误的原因.因此,今天我将与老师们分享一下易查分上传成绩的方法.这 ...
- Retrofit 2.0 超能实践(三),轻松实现多文件/图片上传/Json字符串/表单
通过前两篇姿势的入门 Retrofit 2.0 超能实践,完美支持Https传输 Retrofit2.0 完美同步Cookie实现免登录 本文出自:http://blog.csdn.net/sk719 ...
最新文章
- 浅谈25种设计模式(4/25)(此坑未填)
- jQuery基础介绍
- IDEA配置maven报错解决方案
- 帝国理工学院(IC)研究人员设计了一种可以解决瘫痪的脑机设备
- 第二次数据库作业--gui
- Linux-鸟菜-5-目录配置-FHS
- 洛谷1527(bzoj2738)矩阵乘法——二维树状数组+整体二分
- table类型数据提交_OGG数据同步异常问题总结
- SLAM中有关占据栅格地图的的表示方法和利用激光传感器构建占据栅格地图的方法
- selenium截图模糊_Selenium截屏 图片未加载的问题解决--【懒加载】
- Apache Maven 使用 profile 和 filtering 实现多种环境下的资源配置管理
- 19/100. Subtree of Another Tree
- 【遥感数字图像处理】实验:Erdas 软件的认识与使用
- 这些解决 Bug 的套路,你都会了不?
- [转]我认识的189名CCIE的薪水情况
- 关于seata分布式事务框架的几个问题
- 博途数据类型wstring怎么用_解析博图数据块(昆仑通态触摸屏自动命名)
- Unity3D之Json序列化
- 使用protobuf_example_addressbook.proto项目时的问题:PROTOBUF_USE_DLLS
- 扒一扒那些叫欧拉的定理们(九)——群论观点下的欧拉公式初步
热门文章
- 用Python玩弄微信朋友圈,一键制作好友图片墙酷炸朋友圈(附源码)
- windows下使用cmd命令设置静态IPv4 IPv6地址
- ASP.NET Core基础知识(三)【依赖关系注入(服务)】
- C#医疗保险定点结算
- 互动福利|免费试用阿里云端TuGraph图数据库,还有GoPro、filco键盘、苹果HomePod mini等你拿!...
- 谷歌停止合作,英特尔高通博通等已断供
- 【MAPBOX基础功能】14、mapbox点击面图层高亮指定的面
- linux使用指定版本JDK运行jar包
- 猴子选王c语言链表程序代码,数据结构(C语言)用栈和链表编写猴子选大王程序...
- 方向比努力重要,努力亦不可少