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


猜你喜欢
- 这篇文章主要介绍了python集合删除多种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 本文实例讲述了Python实现的计算器功能。分享给大家供大家参考,具体如下:源码:# -*- coding:utf-8 -*-#! pyth
- 相信各位phper在日常开发中,会经常遇到需要合并数组的场景。那么,在php中都有哪一些方法可以用来合并数组呢。第一种,使用&ldq
- 本文实例为大家分享了python实现最大优先队列的具体代码,供大家参考,具体内容如下说明:为了增强可复用性,设计了两个类,Heap类和Pri
- 摘要在机器视觉中,对于图像的处理有时候因为放置的原因导致ROI区域倾斜,这个时候我们会想办法把它纠正为正确的角度视角来,方便下一步的布局分析
- requests相比urllib,第三方库requests更加简单人性化,是爬虫工作中常用的库requests安装初级爬虫的开始主要是使用r
- 操作步骤进入命令行环境。我使用的是conda。有两种方式进入命令行。方法1:通过anconda navigator界面,选择environm
- 前言VScode是一个相当优秀的IDE,具备开源、跨平台、模块化、插件丰富、启动时间快、颜值高、可高度定制等等优秀的特质,不愧是微软爸爸的私
- 本文实例为大家分享了python实现贪吃蛇双人大战的具体代码,供大家参考,具体内容如下晚上家里小朋友要玩贪吃蛇游戏,还要跟我对战,一时半会我
- 本游戏程序实现的功能为本地二人对弈中国象棋,实现语言为javascript+VML,在windows 2000 pro+IE 6sp1的环境
- 动态页面的模拟点击:以斗鱼直播为例:http://www.douyu.com/directory/all爬取每页的房间名、直播类型、主播名称
- 列表解析 在需要改变列表而不是需要新建某列表时,可以使用列表解析。列表解析表达式为: [expr for iter_var in itera
- 如何引入同级包和模块工程项目结构如下包AnimalShow和Class_test是同级包,AnimalShow是父类,Gound,Sea,S
- 1. 模拟场景实现需求为玩家拥有多个英雄,在部署好英雄之后,只用点击进攻,不用关心每个英雄具体自己的攻击手段!2099/12/29 14:1
- 本文实例讲述了Python实现对不原生支持比较操作的对象排序算法。分享给大家供大家参考,具体如下:问题:想在同一个类的实例之间做排序,但是它
- 一、场景浏览器访问淘宝,再访问天猫,继续访问1688......此时,浏览器中的cookie是什么状态?显然,包含上述3个网站的所有cook
- 一、所需库安装pip install PyAudiopip install SpeechRecognitionpip install bai
- 本文是关于人物角色的一些简单介绍,感谢瑶芝同学提供的大力帮助! 人物角色(Personas)作为一种技术
- 本文实例讲述了Yii框架学习笔记之应用组件操作。分享给大家供大家参考,具体如下:所有的组件都应声明在config/web.php//组件声明
- 本文实例讲述了php+mysqli使用面向对象方式更新数据库的方法,分享给大家供大家参考。具体实现方法如下:<?php//第一步:创建