python 自动化偷懒的四个实用操作
作者:米亚流年 发布时间:2023-11-19 08:49:48
目录
1.自动移动鼠标,以便Skype / Lynk显示你在工作中处于活动状态
2.使用Selenium自动化网站登录过程
3.自动文件备份
4.自动将YouTube视频发布到Reddit主题
结论
自动化有助于解放人们的工作。不过说实话,即使对简单的任务自动化也需要时间和大量的依赖关系管理,而这可能非常复杂。
Python对于几乎所有东西的交互都很友好。从发送HTTP请求、与API交互、到加载和管理数据库都是如此。因此Python是自动化的绝佳选择。
以下是用Python实现自动化的四项简单操作,可以帮助完成各种工作流程和项目。
1.自动移动鼠标,以便Skype / Lynk显示你在工作中处于活动状态
想象一下,在过去十分钟内,你一直在浏览最喜爱的社交媒体应用中的新闻。突然,Lynk软件中的活动符号变黄,这表明你没有工作,也没有参加会议。
这时你爱管闲事的老板走了过来,轻拍你的肩膀。
你很惊讶地抬头,看见老板正瞪着你,因为他有个每时每刻都管理员工的坏习惯。
“嘿,我希望你放松一下,但告诉我那个模块是怎么出现的。”他问道。你咬紧牙关,提供了某种礼貌的答案。
“棒极了,好吧,我只是想确保你能集中注意力。副总裁Janice真的希望我们能够在截止日期前完成任务。”
交谈结束。
要是Lynk软件的活动符号没有变黄该有多好?
其实你可以解决这个问题。在谷歌搜索片刻之后,可找到脚本来移动鼠标并开始编写代码,通过每隔几分钟运行一次程序以确保鼠标移动。
在使用Skype或Lynk时,鼠标和键盘的这些移动可以使你看起来像是在工作中保持活跃状态。
自动化工作使用Python的PyAutoGUI模块。要安装PyAutoGUI模块,请运行以下命令:
pip install pyautogui
Python使用屏幕的坐标系控制并跟踪鼠标。例如,如果屏幕是1920x1080的分辨率,屏幕的坐标系统将如下所示:
PyAutoGUI模块提供以下功能:
•size():size()函数可让你了解屏幕分辨率。
import pyautogui
print(pyautogui.size())
运行此文件(保存为.py扩展名),Python代码使用size()函数输出屏幕分辨率的x、y格式:
•moveTo():PyAutoGUI模块中的moveTo()函数可移动鼠标。下面的代码运用了函数,该函数采用x和y的坐标以及可选的duration(持续时间)参数,使用指定的duration参数将鼠标指针从当前位置移动到x和y的坐标。
import pyautogui
print(pyautogui.size())pyautogui.moveTo(150,100, duration = 2)
运行此Python脚本会发现鼠标指针神奇地从其当前位置移动到坐标(150,100),只用2秒钟就能完成该过程。
除了其中一些基础知识外,还可以使用click和typewrite等函数,实现单击和输入字符串的自动化。
这些都可以用来确保你的老板不会很快抓住你在工作中开小差。
2.使用Selenium自动化网站登录过程
许多网站都不愿看到用户使用爬虫和程序登录其网站。但是,这仍然是一种很值得一学的技能。
Selenium是一个有用的库,可使用多种语言、帮助自动化UI QA、甚至可以通过登录来抓取网站。
虽然学习Selenium可能需要一些时间,但不必学些很难的知识点,只需构建一个可以登录你喜欢的网站的工具。
开始使用前,必须安装Chrome驱动程序和适用于Python的Selenium库。使用以下命令添加Selenium库:
Pip install Selenium
首先,需要从Python的Selenium库中导入一些选定的模块。添加以下命令:
From selenium import webdriverdriver = webdriver.Chrome()
现在,为了实现自动登录,从一个简单的任务开始,比如填写网站的登录表单。
任务包括:
导航到网站
查找登录字段(通常是用户名和密码)。
填写登录详情信息。
提交登录详情信息,自动完成屏幕登录。
建议:可以定义“方法”(用于频繁登录)从而在其他测试中启用重用。 代码行可参考:
From selenium import webdriver
driver = webdriver.Chrome()
def login(url,username,password,submit_button):
driver.get(url)
driver.find_element_by_id(username).send_keys("username")
driver.find_element_by_id(password).send_keys("password")
driver.find_element_by_id(password).(submit_button).click()
注意,你需要获取要与之交互的元素。这可以说是创建登录到站点的Web抓取器或自动登录网站的脚本的难点之一。
有几种方法可以检测Web应用程序的元素,以查找登录字段。
查找元素的常用方法包括ID(如上例所示)、CSS选择器、名称和XPaths。
可以在Selenium的官方文档中找到用于定位登录过程涉及的元素的不同方法。有些网站会使用更多动态内容(比如好几个JavaScript!)。
总的来说,看着Selenium自动点击按钮并登录到你喜爱的网站这一自动化流程十分吸引人。不需要你的参与就能完成移动与操作。 几乎就像在变魔术!
3.自动文件备份
如果要执行常规备份,那么创建自动备份文件非常有用。
你可能熟悉ZIP文件(扩展名为.zip的文件)。ZIP文件可以包含多个具有压缩内容的文件。而且,由于ZIP文件还可以容纳许多文件夹和子文件夹,因此通过将文件打包成一个文件,可成为备份文件的便捷方式。
可以使用zipfile模块中的Python函数自动创建单个ZIP文件(称为存档文件)。还可以使用Python打开(或提取)ZIP文件。该脚本如下所示:
import zipfile, os
def backup(folder)
folder = os.path.abspath(folder)
offset = 1
while True:
zip_name = os.path.basename(folder) + '_' + str(offset) + '.zip'
if not os.path.exists(zip_name):
break
offset += 1
print("Successfully created file " % s " %(zip_name))
backupzip = zipfile.ZipFile(zip_name, 'w') for foldername, subfolders, filenames in os.walk(folder):
backupzip.write(foldername) backupzip.close() print("done")
4.自动将YouTube视频发布到Reddit主题
我们最近看到和想到的另一个一劳永逸的想法是自动执行可能经常执行的任务:使用脚本将多个视频发布到Reddit上。
在Reddit帖子中发布YouTube视频也可以实现自动化。使用PRAW(一种允许抓取数据的Python包装器)可以为Reddit体验提供更多功能。
开始使用前,请使用pip安装PRAW。
下面的脚本会自动将YouTube视频发布到Reddit主题。
import praw
video_url = str(input("Your video url:"))
post_msg = str(input("Your post message"))
reddit = praw.Reddit(client_id = "***************",
client_secret = "************",
user_agent = "**********",
username = "************",
password = "***********")
subreddit_list = ["Python", "PytonProjects", "learningprogramming"]
for i in subreddit_list:
subreddit = reddit.subreddit(i)
print("Posting video to" + i)
subreddit.submit(post_msg, url = video_url)
print("Done")
结论
自动化任务可以带来很多乐趣,特别是看着程序自动登录喜欢的站点,或将数百个文件加载到数据库中。
而且,还有很多优秀的库可以帮助轻松地实现任务自动化。只要库是可维护的,Excel报告、电子邮件和其他任务就可以通过几行代码简化。
来源:https://juejin.cn/post/6949340187553955870
猜你喜欢
- 问题重现Installing golang.org/x/tools/cmd/guru FAILED Installing golang.or
- 代码如下:登陆时记录cookies页面代码 <!--#include file="md5.asp"--&
- 1. 用Dreamweaver 4.0轻松设计会自动弹性调整的网页 首先需要保证的是你的页面内容采用了表格的格式,然后打开你要编辑的页面,按
- 导言(Introduction)这个提案描述了如何在jQuery的核心库中增加模板支持。更为特别是,这个提案描述了一个新的jQuery方法-
- 本文实例为大家分享了Virginia无密钥解密的具体代码,供大家参考,具体内容如下加密virginia加密是一种多表替换加密方法,通过这种方
- 一旦被黑客获取到webshell,黑客就知道了你的sqlserver管理员密码,如果sqlserver再没有经过安全设置那么黑客很容易就提权
- 上一小节讲解了行高与单行纯文字的垂直居中,而如果行内含有图片和文字,在浏览器内浏览时,读者可以发现文字和图片在垂直方向并不是沿中线居中,而是
- 现将几种主要情况进行小结: 一、如何输入NULL值 如果不输入null值,当时间为空时,会默认写入"1900-01-01"
- 本文较为深入的探究了php中in_array函数用法。分享给大家供大家参考。具体如下:今天突然想到php中的in_array函数有个其怪的用
- 前言当需要将多张图像拼接成一张更大的图像时,通常会用到图片拼接技术。这种技术在许多领域中都有广泛的应用,例如计算机视觉、图像处理、卫星图像、
- 这份数据集来源于Kaggle,数据集有12500只猫和12500只狗。在这里简单介绍下整体思路处理数据设计神经网络进行训练测试1. 数据处理
- 见下,把数字转成条形图、条形码的一个程序:<%Sub ShowChart(ByRef aValues,
- 1.将以下代码加入到HEML的<body></body>之间<SCRIPT language=jav
- 假设mysql安装在c:盘,mysql数据库的用户名是root,密码是123456,数据库名是database_name,在d:盘根目录下面
- asp 在线备份 恢复 sql server 数据库,对于远程没有提供sql server远程连接或打包下载的朋友是个临时解决方法,对于大数
- 使用ASP实现网站的目录树数据库结构(共使用了两个表)1。tblCategory字段名 类型 Root&
- 过程名:catch(str) 使用方法: 代码如下:on error resume next '你的代码,如数据库连接 call c
- 当成功安装了PHP,MYSQL后,我们一般要安装phpMyAdmin来管理你的mysql。本文介绍了phpMyAdmin 2.10.2的配置
- 1、说明关键词传递以“形参变量名=实参”的形式参与实参关联,根据形参的名称进行参数传递,使实参和形参的顺序不一致。不用担心定义函数时参数的顺
- 简介pandas中的DF数据类型可以像数据库表格一样进行groupby操作。通常来说groupby操作可以分为三部分:分割数据,应用变换和和