<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          女朋友讓我深夜十二點(diǎn)催她睡覺(jué),我用Python輕松搞定!

          共 3946字,需瀏覽 8分鐘

           ·

          2021-10-30 19:25

          事情是這樣的:昨天晚上,女朋友讓我十二點(diǎn)催她睡覺(jué)。


          不過(guò),可是我實(shí)在太困了,熬不下去…… 是吧?女朋友哪有睡覺(jué)重要?

          但,女朋友的命令,我是不敢違抗的……

          但是睡覺(jué)也不能缺!

          這時(shí)候我們?cè)撛趺崔k呢?是時(shí)候讓Python登場(chǎng)了!

          Python登場(chǎng)

          這次我們來(lái)做一個(gè)自動(dòng)發(fā)送微信的程序,在深夜十二點(diǎn)的時(shí)候給女朋友發(fā)去消息,也算是盡了一個(gè)男朋友的義務(wù)了。

          安裝和導(dǎo)入

          我們需要兩個(gè)模塊:apscheduler,pyautogui

          快捷鍵 Windows+r 打開(kāi)運(yùn)行控制框,輸入 cmd,進(jìn)入命令行,輸入:

          pip install apschedulerpip install pyautogui

          導(dǎo)入:

          import pyautoguifrom datetime import datetimefrom apscheduler.schedulers.blocking import BlockingScheduler # 阻塞當(dāng)前進(jìn)程的調(diào)度器# blocking類(lèi)型調(diào)度器會(huì)阻塞當(dāng)前進(jìn)程,若你想要后臺(tái)運(yùn)行的調(diào)度器,可以使用以下代碼:# from apscheduler.schedulers.background import BackgroundScheduler


          pyautogui

          首先我們來(lái)實(shí)現(xiàn)自動(dòng)發(fā)送消息

          pyautogui 是一個(gè)非常強(qiáng)大的庫(kù),可以操作鼠標(biāo)和鍵盤(pán)。我們將用它來(lái)完成自動(dòng)操作電腦。

          先來(lái)做一些基本設(shè)置:

          pyautogui.PAUSE = 1 # 設(shè)置每一步操作的間隔(秒),可防止操作太快

          然后我們登錄微信,最小化。

          接下來(lái)我們把鼠標(biāo)放到微信的任務(wù)欄圖標(biāo)上,運(yùn)行以下語(yǔ)句,獲取此時(shí)光標(biāo)的坐標(biāo),返回一個(gè)Point對(duì)象:

          print(pyautogui.position()) # 打印坐標(biāo),Point(x=148, y=879)icon_position = pyautogui.position() # Point(x=148, y=879)

          打開(kāi)微信,選擇女朋友的回話窗口,將鼠標(biāo)放在輸入框上,同樣獲取光標(biāo)坐標(biāo),為了將焦點(diǎn)鎖定到輸入框以方便待會(huì)的輸入。

          print(pyautogui.position()) # 打印坐標(biāo),Point(x=174, y=751)entry_position = pyautogui.position() # Point(x=174, y=751)

          接下來(lái),控制程序依次點(diǎn)擊這兩個(gè)點(diǎn):

          pyautogui.click(icon_position) # 默認(rèn)左鍵單擊# pyautogui.click(148, 879)pyautogui.click(entry_position)# pyautogui.click(174, 751)

          打開(kāi)微信并鎖定焦點(diǎn)后,我們開(kāi)始輸入文本。

          輸入文本可以有兩種方式:

          • pyautogui.typewrite(['o', 'n', 'e', 'enter'])

          在方法中傳入一個(gè)列表,里面每一元素都是單個(gè)字母或特殊按鍵

          • pyautogui.typewrite('You can type multiple letters in this way')

          傳入字符串,但不能同時(shí)打印字母和特殊按鍵。

          這兩種方式都不能直接輸入中文,所以只能依靠你的輸入法來(lái)輸入中文了。

          pyautogui.typewrite([*list('zhengzai '), *list('jinxing '), 'shift', *list('pyautogui'), 'shift', *list('shiyan '), 'enter'], 0.1) # 第一個(gè)參數(shù)是輸入文本,第二個(gè)是輸入每個(gè)字符的間隔時(shí)間

          為了使我們的操作更加 人模狗樣 像人的操作,我么來(lái)加上移動(dòng)鼠標(biāo)的代碼:

          pyautogui.moveTo(icon_position, duration=2) # duration為執(zhí)行時(shí)長(zhǎng),可選pyautogui.click(icon_position)pyautogui.moveTo(entry_position, duration=2)pyautogui.click(entry_position)pyautogui.typewrite([*list('zhengzai '), *list('jinxing '), 'shift', *list('pyautogui'), 'shift', *list('shiyan '), 'enter'], 0.1) # 第二個(gè)參數(shù)為按下每一個(gè)字母的間隔,可選

          看看效果:

          當(dāng)然,若是你要輸入的內(nèi)容實(shí)在很多,又嫌麻煩,可以通過(guò)復(fù)制粘貼來(lái)實(shí)現(xiàn):

          import pyperclip
          pyperclip.copy('正在進(jìn)行發(fā)中文試驗(yàn),看到請(qǐng)忽略,更不要罵傻逼') # 復(fù)制pyautogui.hotkey('ctrl', 'v') # 按下組合鍵的方法,ctrl+v粘貼pyautogui.press('enter') # 按下按鍵


          這樣,我們便完成了自動(dòng)發(fā)送微信消息的功能了。

          apscheduler

          APScheduler 是一個(gè)Python庫(kù),可實(shí)現(xiàn)延遲調(diào)度要執(zhí)行Python代碼的功能,可以只執(zhí)行一次,也可以定期執(zhí)行??梢噪S時(shí)添加新任務(wù)或刪除舊任務(wù)。能夠十分方便地進(jìn)行定時(shí)任務(wù)。

          scheduler = BlockingScheduler() # 實(shí)例化一個(gè)調(diào)度器scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任務(wù)scheduler.start()

          add_job 方法在這里傳了 3 個(gè)參數(shù),第一個(gè)為到時(shí)間后要執(zhí)行的函數(shù),第二個(gè)為觸發(fā)器的類(lèi)型。這里選用的是 date 觸發(fā)器,特定的時(shí)間點(diǎn)觸發(fā),作業(yè)任務(wù)只會(huì)執(zhí)行一次。第三個(gè)參數(shù) run_date 就是執(zhí)行的時(shí)間。在這前我已經(jīng)把自動(dòng)發(fā)送消息的代碼封裝為了 main 函數(shù),只需到時(shí)后調(diào)用即可。

          完整代碼

          import pyautoguiimport pyperclipfrom datetime import datetimefrom apscheduler.schedulers.blocking import BlockingScheduler
          def main(): pyautogui.PAUSE = 0
          icon_position = pyautogui.Point(x=148, y=879) # 任務(wù)欄圖標(biāo)位置 entry_position = pyautogui.Point(x=174, y=751) # 輸入框位置
          pyautogui.moveTo(icon_position, duration=1) # duration為執(zhí)行時(shí)長(zhǎng),可選 pyautogui.click(icon_position) pyautogui.moveTo(entry_position, duration=0.7) pyautogui.click(entry_position) pyperclip.copy('快去睡覺(jué)') pyautogui.hotkey('ctrl', 'v') pyautogui.press('enter') pyperclip.copy('笨豬') pyautogui.hotkey('ctrl', 'v') pyautogui.press('enter')
          scheduler = BlockingScheduler() # 實(shí)例化scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任務(wù)scheduler.start()

          完成啦!現(xiàn)在可以去睡覺(jué)了。

          結(jié)果

          第二天早上起床,我被我媽媽罵了一頓,問(wèn)我為什么午夜12點(diǎn)的時(shí)候電腦還亮著,而且還在自己發(fā)微信!

          不過(guò),好在女朋友沒(méi)丟,我成功完成了女朋友的任務(wù)!

          好啦,這篇文章就到這里了。以上就是我分享的全部?jī)?nèi)容,感謝閱讀!


          版權(quán)聲明:本文為博主原創(chuàng)文章,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接和本聲明。本文鏈接:

          https://blog.csdn.net/weixin_52132159/article/details/119785717


          - EOF -


          回復(fù)關(guān)鍵字“簡(jiǎn)明python ”,立即獲取入門(mén)必備書(shū)籍簡(jiǎn)明python教程》電子版

          回復(fù)關(guān)鍵字爬蟲(chóng)”,立即獲取爬蟲(chóng)學(xué)習(xí)資料

          點(diǎn)擊關(guān)注【python入門(mén)與進(jìn)階】,閱讀更多精彩內(nèi)容
          ??????

          推薦

          瀏覽 84
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  a∨中文字幕 | 亚洲无码免费观看视频 | 国产精品久久久久久日 | 亚洲色婷婷在线 | 青娱乐无码在线 |