欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Python如何制作自動(dòng)發(fā)送微信的程序

 更新時(shí)間:2022年01月28日 11:36:25   作者:Cresyeal  
這篇文章主要介紹了如何利用Python中的apscheduler和pyautogui模塊,制作一個(gè)自動(dòng)發(fā)送微信的程序。感興趣的小伙伴可以跟隨小編一起動(dòng)手試一試

前言

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

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

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

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

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

模塊安裝和導(dǎo)入

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

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

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

pip install apscheduler
pip install pyautogui

導(dǎo)入:

import pyautogui
from datetime import datetime
from 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)微信,選擇女朋友的回話(huà)窗口,將鼠標(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 pyautogui
import pyperclip
from datetime import datetime
from 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ù)!

以上就是詳解Python如何制作自動(dòng)發(fā)送微信的程序的詳細(xì)內(nèi)容,更多關(guān)于Python自動(dòng)發(fā)送微信的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中的xmltodict模塊詳解

    Python中的xmltodict模塊詳解

    這篇文章主要介紹了Python中的xmltodict模塊詳解,xmltodict一般我們用 json、yaml 轉(zhuǎn)換成 dict 可能多一些,xml 轉(zhuǎn)到 dict 可能用得不多,不過(guò),還是可以來(lái)看一看,需要的朋友可以參考下
    2023-07-07
  • Python利用正則表達(dá)式實(shí)現(xiàn)計(jì)算器算法思路解析

    Python利用正則表達(dá)式實(shí)現(xiàn)計(jì)算器算法思路解析

    這篇文章主要介紹了Python利用正則表達(dá)式實(shí)現(xiàn)計(jì)算器算法思路解析,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下吧
    2018-04-04
  • 淺析Python基礎(chǔ)-流程控制

    淺析Python基礎(chǔ)-流程控制

    Python編程語(yǔ)言的作用非常強(qiáng)大,而且其應(yīng)用方便的特點(diǎn)也對(duì)開(kāi)發(fā)人員起到了非常大的作用。在這里我們就可以先從Python流程控制關(guān)鍵字的相關(guān)概念開(kāi)始了解,從而初步掌握這一語(yǔ)言的特點(diǎn)
    2016-03-03
  • 關(guān)于pycharm找不到MySQLdb模塊的解決方法

    關(guān)于pycharm找不到MySQLdb模塊的解決方法

    MySQLdb是用于Python鏈接Mysql數(shù)據(jù)庫(kù)的接口,它實(shí)現(xiàn)了Python數(shù)據(jù)庫(kù)API規(guī)范V2.0,基于MySql C API上建立的,本文給大家介紹pycharm找不到MySQLdb模塊解決方法,需要的朋友參考下吧
    2021-06-06
  • 利用Python實(shí)現(xiàn)批量打包程序的工具

    利用Python實(shí)現(xiàn)批量打包程序的工具

    auto-py-to-exe與pyinstaller都無(wú)法直接一次性打包多個(gè)程序,想打包多個(gè)程序需要重新操作一遍。所以本文將用Python實(shí)現(xiàn)批量打包程序的工具,感興趣的可以了解一下
    2022-07-07
  • appium+python自動(dòng)化配置(adk、jdk、node.js)

    appium+python自動(dòng)化配置(adk、jdk、node.js)

    這篇文章主要介紹了appium+python自動(dòng)化配置(adk、jdk、node.js),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python中利用await關(guān)鍵字如何等待Future對(duì)象完成詳解

    python中利用await關(guān)鍵字如何等待Future對(duì)象完成詳解

    為了簡(jiǎn)化并更好地標(biāo)識(shí)異步IO,從Python 3.5開(kāi)始引入了新的語(yǔ)法async和await,可以讓coroutine的代碼更簡(jiǎn)潔易讀。下面這篇文章主要給大家介紹了關(guān)于python中利用await關(guān)鍵字如何等待Future對(duì)象完成的相關(guān)資料,需要的朋友可以參考下。
    2017-09-09
  • DataFrame.groupby()所見(jiàn)的各種用法詳解

    DataFrame.groupby()所見(jiàn)的各種用法詳解

    這篇文章主要介紹了DataFrame.groupby()所見(jiàn)的各種用法詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • python防止程序超時(shí)的實(shí)現(xiàn)示例

    python防止程序超時(shí)的實(shí)現(xiàn)示例

    因?yàn)槟硞€(gè)需求,需要在程序運(yùn)行的時(shí)候防止超時(shí),本文主要介紹了python防止程序超時(shí)的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-08-08
  • 15個(gè)短代碼示例理解python豐富的編程思維

    15個(gè)短代碼示例理解python豐富的編程思維

    這篇文章主要為大家介紹了python豐富的編程思維,文中通過(guò)python的幾行短代碼示例來(lái)給大家進(jìn)行詳細(xì)的講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11

最新評(píng)論