Aqui está a coisa: ontem à noite, minha namorada me pediu para empurrá-la para a cama ao meio-dia.
Mas, estou com muito sono para sobreviver... eh? É importante para uma namorada dormir?
No entanto, não ouso desobedecer às ordens da minha namorada...
Mas não me pode faltar o sono!
O que nós devemos fazer então? É hora de trazer o Python para a mesa! Gosta de lembrar de colecionar, seguir, curtir.
A versão completa do código, obtida no final do artigo
Estreia do Python
Desta vez, vamos fazer um programa para enviar automaticamente o WeChat, e enviar uma mensagem para minha namorada às 12 horas da madrugada, o que pode ser considerado um cumprimento da obrigação de um namorado.
instalar e importar
Precisamos de dois módulos: apscheduler, pyautogui
Atalho Windows+r para abrir a caixa de controle de execução, digite cmd, digite a linha de comando, digite:
pip install apscheduler
pip install pyautogui
importar:
import pyautogui
from datetime import datetime
from apscheduler.schedulers.blocking import BlockingScheduler # 阻塞当前进程的调度器
# blocking类型调度器会阻塞当前进程,若你想要后台运行的调度器,可以使用以下代码:
# from apscheduler.schedulers.background import BackgroundScheduler
pyautogui
Primeiro vamos implementar o envio automático de mensagens
pyautogui é uma biblioteca muito poderosa que pode operar mouse e teclado. Vamos usá-lo para completar a automação do computador.
Vamos fazer algumas configurações básicas primeiro:
pyautogui.PAUSE = 1 # 设置每一步操作的间隔(秒),可防止操作太快
Em seguida, efetuamos login no WeChat e minimizamos.
Em seguida, colocamos o mouse no ícone da barra de tarefas do WeChat, executamos a seguinte instrução, obtemos as coordenadas do cursor neste momento e retornamos um objeto Point:
print(pyautogui.position()) # 打印坐标,Point(x=148, y=879)
icon_position = pyautogui.position() # Point(x=148, y=879)
Abra o WeChat, selecione a janela de conversa da namorada, coloque o mouse na caixa de entrada, e também obtenha as coordenadas do cursor, a fim de travar o foco na caixa de entrada para facilitar a entrada posteriormente.
print(pyautogui.position()) # 打印坐标,Point(x=174, y=751)
entry_position = pyautogui.position() # Point(x=174, y=751)
Em seguida, o programa de controle clica nesses dois pontos em sequência:
pyautogui.click(icon_position) # 默认左键单击
# pyautogui.click(148, 879)
pyautogui.click(entry_position)
# pyautogui.click(174, 751)
Depois de abrir o WeChat e bloquear o foco, começamos a inserir texto.
Há duas maneiras de inserir texto:
pyautogui.typewrite(['o', 'n', 'e', 'enter'])
Passe uma lista no método, onde cada elemento é uma única letra ou uma chave especial
pyautogui.typewrite('You can type multiple letters in this way')
Passe uma string, mas não imprima letras e teclas especiais ao mesmo tempo.
Nenhum desses dois métodos pode inserir diretamente o chinês, portanto, você só pode confiar no seu método de entrada para inserir o chinês.
pyautogui.typewrite([*list('zhengzai '), *list('jinxing '), 'shift', *list('pyautogui'), 'shift', *list('shiyan '), 'enter'], 0.1) # 第一个参数是输入文本,第二个是输入每个字符的间隔时间
Para tornar nossa operação mais humana, vamos adicionar o código para mover o mouse:
pyautogui.moveTo(icon_position, duration=2) # duration为执行时长,可选
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) # 第二个参数为按下每一个字母的间隔,可选
Dê uma olhada no efeito:
Claro, se você quiser inserir muito conteúdo e for muito problemático, poderá fazê-lo copiando e colando:
import pyperclip
pyperclip.copy('正在进行发中文试验,看到请忽略,更不要骂傻逼') # 复制
pyautogui.hotkey('ctrl', 'v') # 按下组合键的方法,ctrl+v粘贴
pyautogui.press('enter') # 按下按键
Dessa forma, concluímos a função de enviar automaticamente mensagens do WeChat.
programador
APScheduler é uma biblioteca Python que permite que o agendamento atrasado do código Python seja executado, uma vez ou periodicamente. Novas tarefas podem ser adicionadas ou tarefas antigas podem ser excluídas a qualquer momento. É muito conveniente executar tarefas agendadas.
scheduler = BlockingScheduler() # 实例化一个调度器
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任务
scheduler.start()
O método add_job passa 3 parâmetros aqui, o primeiro é a função a ser executada após o tempo acabar e o segundo é o tipo de trigger. O acionador de data é selecionado aqui, que é acionado em um ponto de tempo específico, e a tarefa de trabalho será executada apenas uma vez. O terceiro parâmetro run_date é o tempo de execução. Antes disso, eu encapsulei o código para enviar automaticamente a mensagem na função principal, basta chamá-la quando o tempo acabar.
parte do código
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) # 任务栏图标位置
entry_position = pyautogui.Point(x=174, y=751) # 输入框位置
pyautogui.moveTo(icon_position, duration=1) # duration为执行时长,可选
pyautogui.click(icon_position)
pyautogui.moveTo(entry_position, duration=0.7)
pyautogui.click(entry_position)
pyperclip.copy('快去睡觉')
pyautogui.hotkey('ctrl', 'v')
pyautogui.press('enter')
pyperclip.copy('笨猪')
pyautogui.hotkey('ctrl', 'v')
pyautogui.press('enter')
scheduler = BlockingScheduler() # 实例化
scheduler.add_job(main, 'date', run_date=datetime(2021, 8, 18, 24, 00, 00)) # 添加任务
scheduler.start()
Feito! Agora pode ir dormir.
resultado
Quando acordei na manhã seguinte, fui repreendido por minha mãe e me perguntou por que meu computador ainda estava ligado à meia-noite e eu ainda estava enviando o WeChat sozinho!
No entanto, felizmente, minha namorada não se perdeu e completei com sucesso a tarefa da minha namorada!
Tudo bem, é isso para este artigo. Isso é tudo que eu compartilhei, obrigado por ler!
Não esqueça de curtir , estou assistindo ~
artigo recomendado
-
O curso de mandarim "Machine Learning" de Li Hongyi (2022) está aqui
-
Alguém fez uma versão chinesa do aprendizado de máquina e aprendizado profundo do Sr. Wu Enda
-
Estou viciado, e recentemente dei à empresa uma grande tela visual (com código fonte)
-
Tão elegantes, 4 artefatos de análise automática de dados Python são realmente perfumados
-
É muito perfumado e 20 modelos visuais de tela grande foram organizados
Intercâmbio de Tecnologia
Código completo, aquisição de dados, você pode me pedir
Intercâmbios técnicos, referências de busca de emprego, resumo de produtos secos e interação com mais de 3.000 desenvolvedores de escolas e empresas famosas como Ali, Universidade de Pequim, Tsinghua, Academia Chinesa de Ciências, CMU, Tencent, Baidu, etc. ~
Atualmente, um grupo de intercâmbio técnico foi aberto e o grupo tem mais de 3.000 pessoas . A melhor maneira de comentar ao adicionar é: fonte + direção de interesse, o que é conveniente para encontrar amigos com ideias semelhantes
- Método 1. Envie a seguinte imagem para o WeChat, pressione e segure para identificar e responda em segundo plano: adicionar grupo;
- Método ②, adicione micro-sinal: dkl88191 , nota: da CSDN
- Método ③, número público de pesquisa do WeChat: aprendizado de Python e mineração de dados , resposta em segundo plano: adicionar grupo