python 自动化偷懒的四个实用操作


Posted in Python onApril 11, 2021

自动化有助于解放人们的工作。不过说实话,即使对简单的任务自动化也需要时间和大量的依赖关系管理,而这可能非常复杂。

Python对于几乎所有东西的交互都很友好。从发送HTTP请求、与API交互、到加载和管理数据库都是如此。因此Python是自动化的绝佳选择。

以下是用Python实现自动化的四项简单操作,可以帮助完成各种工作流程和项目。

1.自动移动鼠标,以便Skype / Lynk显示你在工作中处于活动状态

想象一下,在过去十分钟内,你一直在浏览最喜爱的社交媒体应用中的新闻。突然,Lynk软件中的活动符号变黄,这表明你没有工作,也没有参加会议。

这时你爱管闲事的老板走了过来,轻拍你的肩膀。

你很惊讶地抬头,看见老板正瞪着你,因为他有个每时每刻都管理员工的坏习惯。

“嘿,我希望你放松一下,但告诉我那个模块是怎么出现的。”他问道。你咬紧牙关,提供了某种礼貌的答案。

“棒极了,好吧,我只是想确保你能集中注意力。副总裁Janice真的希望我们能够在截止日期前完成任务。”

交谈结束。

要是Lynk软件的活动符号没有变黄该有多好?

其实你可以解决这个问题。在谷歌搜索片刻之后,可找到脚本来移动鼠标并开始编写代码,通过每隔几分钟运行一次程序以确保鼠标移动。

在使用Skype或Lynk时,鼠标和键盘的这些移动可以使你看起来像是在工作中保持活跃状态。

自动化工作使用Python的PyAutoGUI模块。要安装PyAutoGUI模块,请运行以下命令:

pip install pyautogui

Python使用屏幕的坐标系控制并跟踪鼠标。例如,如果屏幕是1920x1080的分辨率,屏幕的坐标系统将如下所示:

python 自动化偷懒的四个实用操作

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报告、电子邮件和其他任务就可以通过几行代码简化。

以上就是python 自动化偷懒的四个实用操作的详细内容,更多关于python 自动化实用操作的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python的Twisted框架中使用Deferred对象来管理回调函数
May 25 Python
Python批量查询域名是否被注册过
Jun 21 Python
利用python将xml文件解析成html文件的实现方法
Dec 22 Python
Python模块文件结构代码详解
Feb 03 Python
Python 通过微信控制实现app定位发送到个人服务器再转发微信服务器接收位置信息
Aug 05 Python
python实现高斯判别分析算法的例子
Dec 09 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
Python的形参和实参使用方式
Dec 24 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
python3爬虫GIL修改多线程实例讲解
Nov 24 Python
使用django自带的user做外键的方法
Nov 30 Python
Python hashlib和hmac模块使用方法解析
Dec 08 Python
python Tkinter的简单入门教程
PyQt5 显示超清高分辨率图片的方法
用Python提取PDF表格的方法
用Python提取PDF表格的方法
python实现自动化群控的步骤
Apr 11 #Python
python 调用js的四种方式
Apr 11 #Python
Python WSGI 规范简介
You might like
destoon实现公司新闻详细页添加评论功能的方法
2014/07/15 PHP
掌握PHP垃圾回收机制详解
2019/03/13 PHP
在 PHP 和 Laravel 中使用 Traits的方法
2019/11/13 PHP
用document.documentElement取代document.body的原因分析
2009/11/12 Javascript
Extjs的FileUploadField文件上传出现了两个上传按钮
2014/04/29 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
Javascript中的对象和原型(二)
2016/08/12 Javascript
解决vue里碰到 $refs 的问题的方法
2017/07/13 Javascript
在 Angular 中使用Chart.js 和 ng2-charts的示例代码
2017/08/17 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
你不可不知的Vue.js列表渲染详解
2019/10/01 Javascript
微信sdk实现禁止微信分享(使用原生php实现)
2019/11/15 Javascript
vue各种事件监听实例(小结)
2020/06/24 Javascript
vue Treeselect 树形下拉框:获取选中节点的ids和lables操作
2020/08/15 Javascript
[03:11]完美世界DOTA2联赛PWL DAY8集锦
2020/11/09 DOTA
Python进阶-函数默认参数(详解)
2017/05/18 Python
利用Python将每日一句定时推送至微信的实现方法
2018/08/13 Python
python+opencv打开摄像头,保存视频、拍照功能的实现方法
2019/01/08 Python
Python父目录、子目录的相互调用方法
2019/02/16 Python
Python 实现数据结构-循环队列的操作方法
2019/07/17 Python
Python实现二叉树的最小深度的两种方法
2019/09/30 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
柯基袜:Corgi Socks
2017/01/26 全球购物
英国领先品牌手动工具和电动工具供应商:Tooled Up
2018/11/24 全球购物
酒店副总岗位职责
2013/12/24 职场文书
党校培训思想汇报
2013/12/30 职场文书
2014学校庆三八妇女节活动总结
2014/03/01 职场文书
2015年保险公司个人工作总结
2015/05/22 职场文书
离婚案件上诉状
2015/05/23 职场文书
追悼词范文大全
2015/06/23 职场文书
新学期感想
2015/08/10 职场文书
企业团队精神心得体会
2016/01/19 职场文书
python 离散点图画法的实现
2022/04/01 Python
关于pytest结合csv模块实现csv格式的数据驱动问题
2022/05/30 Python