python 自動(dòng)化偷懶的四個(gè)實(shí)用操作
自動(dòng)化有助于解放人們的工作。不過(guò)說(shuō)實(shí)話,即使對(duì)簡(jiǎn)單的任務(wù)自動(dòng)化也需要時(shí)間和大量的依賴關(guān)系管理,而這可能非常復(fù)雜。
Python對(duì)于幾乎所有東西的交互都很友好。從發(fā)送HTTP請(qǐng)求、與API交互、到加載和管理數(shù)據(jù)庫(kù)都是如此。因此Python是自動(dòng)化的絕佳選擇。
以下是用Python實(shí)現(xiàn)自動(dòng)化的四項(xiàng)簡(jiǎn)單操作,可以幫助完成各種工作流程和項(xiàng)目。
1.自動(dòng)移動(dòng)鼠標(biāo),以便Skype / Lynk顯示你在工作中處于活動(dòng)狀態(tài)想象一下,在過(guò)去十分鐘內(nèi),你一直在瀏覽最喜愛(ài)的社交媒體應(yīng)用中的新聞。突然,Lynk軟件中的活動(dòng)符號(hào)變黃,這表明你沒(méi)有工作,也沒(méi)有參加會(huì)議。
這時(shí)你愛(ài)管閑事的老板走了過(guò)來(lái),輕拍你的肩膀。
你很驚訝地抬頭,看見(jiàn)老板正瞪著你,因?yàn)樗袀€(gè)每時(shí)每刻都管理員工的壞習(xí)慣。
“嘿,我希望你放松一下,但告訴我那個(gè)模塊是怎么出現(xiàn)的。”他問(wèn)道。你咬緊牙關(guān),提供了某種禮貌的答案。
“棒極了,好吧,我只是想確保你能集中注意力。副總裁Janice真的希望我們能夠在截止日期前完成任務(wù)?!?/p>
交談結(jié)束。
要是Lynk軟件的活動(dòng)符號(hào)沒(méi)有變黃該有多好?
其實(shí)你可以解決這個(gè)問(wèn)題。在谷歌搜索片刻之后,可找到腳本來(lái)移動(dòng)鼠標(biāo)并開(kāi)始編寫(xiě)代碼,通過(guò)每隔幾分鐘運(yùn)行一次程序以確保鼠標(biāo)移動(dòng)。
在使用Skype或Lynk時(shí),鼠標(biāo)和鍵盤(pán)的這些移動(dòng)可以使你看起來(lái)像是在工作中保持活躍狀態(tài)。
自動(dòng)化工作使用Python的PyAutoGUI模塊。要安裝PyAutoGUI模塊,請(qǐng)運(yùn)行以下命令:
pip install pyautogui
Python使用屏幕的坐標(biāo)系控制并跟蹤鼠標(biāo)。例如,如果屏幕是1920x1080的分辨率,屏幕的坐標(biāo)系統(tǒng)將如下所示:
PyAutoGUI模塊提供以下功能:
•size():size()函數(shù)可讓你了解屏幕分辨率。import pyautoguiprint(pyautogui.size())
運(yùn)行此文件(保存為.py擴(kuò)展名),Python代碼使用size()函數(shù)輸出屏幕分辨率的x、y格式:
•moveTo():PyAutoGUI模塊中的moveTo()函數(shù)可移動(dòng)鼠標(biāo)。下面的代碼運(yùn)用了函數(shù),該函數(shù)采用x和y的坐標(biāo)以及可選的duration(持續(xù)時(shí)間)參數(shù),使用指定的duration參數(shù)將鼠標(biāo)指針從當(dāng)前位置移動(dòng)到x和y的坐標(biāo)。import pyautoguiprint(pyautogui.size())pyautogui.moveTo(150,100, duration = 2)
運(yùn)行此Python腳本會(huì)發(fā)現(xiàn)鼠標(biāo)指針神奇地從其當(dāng)前位置移動(dòng)到坐標(biāo)(150,100),只用2秒鐘就能完成該過(guò)程。
除了其中一些基礎(chǔ)知識(shí)外,還可以使用click和typewrite等函數(shù),實(shí)現(xiàn)單擊和輸入字符串的自動(dòng)化。
這些都可以用來(lái)確保你的老板不會(huì)很快抓住你在工作中開(kāi)小差。
2.使用Selenium自動(dòng)化網(wǎng)站登錄過(guò)程許多網(wǎng)站都不愿看到用戶使用爬蟲(chóng)和程序登錄其網(wǎng)站。但是,這仍然是一種很值得一學(xué)的技能。
Selenium是一個(gè)有用的庫(kù),可使用多種語(yǔ)言、幫助自動(dòng)化UI QA、甚至可以通過(guò)登錄來(lái)抓取網(wǎng)站。
雖然學(xué)習(xí)Selenium可能需要一些時(shí)間,但不必學(xué)些很難的知識(shí)點(diǎn),只需構(gòu)建一個(gè)可以登錄你喜歡的網(wǎng)站的工具。
開(kāi)始使用前,必須安裝Chrome驅(qū)動(dòng)程序和適用于Python的Selenium庫(kù)。使用以下命令添加Selenium庫(kù):
Pip install Selenium
首先,需要從Python的Selenium庫(kù)中導(dǎo)入一些選定的模塊。添加以下命令:
From selenium import webdriverdriver = webdriver.Chrome()
現(xiàn)在,為了實(shí)現(xiàn)自動(dòng)登錄,從一個(gè)簡(jiǎn)單的任務(wù)開(kāi)始,比如填寫(xiě)網(wǎng)站的登錄表單。
任務(wù)包括:
導(dǎo)航到網(wǎng)站 查找登錄字段(通常是用戶名和密碼)。 填寫(xiě)登錄詳情信息。 提交登錄詳情信息,自動(dòng)完成屏幕登錄。建議:可以定義“方法”(用于頻繁登錄)從而在其他測(cè)試中啟用重用。 代碼行可參考:
From selenium import webdriverdriver = 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()
注意,你需要獲取要與之交互的元素。這可以說(shuō)是創(chuàng)建登錄到站點(diǎn)的Web抓取器或自動(dòng)登錄網(wǎng)站的腳本的難點(diǎn)之一。
有幾種方法可以檢測(cè)Web應(yīng)用程序的元素,以查找登錄字段。
查找元素的常用方法包括ID(如上例所示)、CSS選擇器、名稱(chēng)和XPaths。
可以在Selenium的官方文檔中找到用于定位登錄過(guò)程涉及的元素的不同方法。有些網(wǎng)站會(huì)使用更多動(dòng)態(tài)內(nèi)容(比如好幾個(gè)JavaScript?。?。
總的來(lái)說(shuō),看著Selenium自動(dòng)點(diǎn)擊按鈕并登錄到你喜愛(ài)的網(wǎng)站這一自動(dòng)化流程十分吸引人。不需要你的參與就能完成移動(dòng)與操作。 幾乎就像在變魔術(shù)!
3.自動(dòng)文件備份如果要執(zhí)行常規(guī)備份,那么創(chuàng)建自動(dòng)備份文件非常有用。
你可能熟悉ZIP文件(擴(kuò)展名為.zip的文件)。ZIP文件可以包含多個(gè)具有壓縮內(nèi)容的文件。而且,由于ZIP文件還可以容納許多文件夾和子文件夾,因此通過(guò)將文件打包成一個(gè)文件,可成為備份文件的便捷方式。
可以使用zipfile模塊中的Python函數(shù)自動(dòng)創(chuàng)建單個(gè)ZIP文件(稱(chēng)為存檔文件)。還可以使用Python打開(kāi)(或提取)ZIP文件。該腳本如下所示:
import zipfile, osdef backup(folder)folder = os.path.abspath(folder)offset = 1while True: zip_name = os.path.basename(folder) + ’_’ + str(offset) + ’.zip’if not os.path.exists(zip_name): breakoffset += 1print('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.自動(dòng)將YouTube視頻發(fā)布到Reddit主題
我們最近看到和想到的另一個(gè)一勞永逸的想法是自動(dòng)執(zhí)行可能經(jīng)常執(zhí)行的任務(wù):使用腳本將多個(gè)視頻發(fā)布到Reddit上。
在Reddit帖子中發(fā)布YouTube視頻也可以實(shí)現(xiàn)自動(dòng)化。使用PRAW(一種允許抓取數(shù)據(jù)的Python包裝器)可以為Reddit體驗(yàn)提供更多功能。
開(kāi)始使用前,請(qǐng)使用pip安裝PRAW。
下面的腳本會(huì)自動(dòng)將YouTube視頻發(fā)布到Reddit主題。
import prawvideo_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')結(jié)論
自動(dòng)化任務(wù)可以帶來(lái)很多樂(lè)趣,特別是看著程序自動(dòng)登錄喜歡的站點(diǎn),或?qū)?shù)百個(gè)文件加載到數(shù)據(jù)庫(kù)中。
而且,還有很多優(yōu)秀的庫(kù)可以幫助輕松地實(shí)現(xiàn)任務(wù)自動(dòng)化。只要庫(kù)是可維護(hù)的,Excel報(bào)告、電子郵件和其他任務(wù)就可以通過(guò)幾行代碼簡(jiǎn)化。
以上就是python 自動(dòng)化偷懶的四個(gè)實(shí)用操作的詳細(xì)內(nèi)容,更多關(guān)于python 自動(dòng)化實(shí)用操作的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. ASP動(dòng)態(tài)網(wǎng)頁(yè)制作技術(shù)經(jīng)驗(yàn)分享2. jsp實(shí)現(xiàn)登錄驗(yàn)證的過(guò)濾器3. Xml簡(jiǎn)介_(kāi)動(dòng)力節(jié)點(diǎn)Java學(xué)院整理4. jsp文件下載功能實(shí)現(xiàn)代碼5. 如何在jsp界面中插入圖片6. JSP之表單提交get和post的區(qū)別詳解及實(shí)例7. 詳解瀏覽器的緩存機(jī)制8. vue3+ts+elementPLus實(shí)現(xiàn)v-preview指令9. .Net加密神器Eazfuscator.NET?2023.2?最新版使用教程10. phpstudy apache開(kāi)啟ssi使用詳解
