安装
安装过程比较简朴 , 直接pip就好:
sudo pip3 install twilio
等待安装完成
Successfully built twilioInstalling collected packages: PyJWT, twilioSuccessfully installed PyJWT-1.7.1 twilio-6.38.1注册并获取三个重要参数
参考文章:https://zhuanlan.zhihu.com/p/67716042
简朴代码实现发送短信实验
代码:
from twilio.rest import Client # 导包account_sid = '你的account_sid'auth_token = '你的auth_token'client = Client(account_sid, auth_token)message = client.messages.create(from_='+×××××××××',body='亲爱的H , 以后我天天都会给你发送一条信息哦!!!',to='你要发送到的手机号(以+86开头)')print(message.sid)控制台输出:
/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/qqsend/Send.pySMfe64f40f2ac24b8ca82121d57147312cProcess finished with exit code 0手机接收短信:
OK!到这里我们已经简朴实现了发送短信的功能 , 现在要去把这个功能封装一下 。
实现发送短信的功能
封装代码:
from twilio.rest import Client # 导包def sendSMSMsg(content, tel):"""向某个手机号发送短信内容:param content: 短信内容:param tel: 手机号"""account_sid = '你的account_sid'auth_token = '你的auth_token'client = Client(account_sid, auth_token)client.messages.create(from_='+18634171608',body=content,to=tel)print('Send :', content, 'to tel:', tel, 'syccessfully!!!')if __name__ == '__main__':sendSMSMsg("Hello?" ,"+×××××××××")测试结果:
/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/qqsend/Send.pySend : Hello? to tel: +8618436354553 syccessfully!!!Process finished with exit code 0手机接收短信:
发送短信总结
注册twilio
获取三个参数:account_sid , auth_token , TRIAL NUMBER
引入twilio
设置你要发送到的手机号和内容
操作还算是比较简朴的 , 这部分主要用到twilio库 。
定时发送短信
这一步算是我们的主程序了 , 在这一部分里 , 我们要使用之前的代码先获取情话list , 再设置定时任务 , 天天固定的时间点把短信发到女神手机上 。
Python定时任务
Python 中的定时任务框架还挺多的 , 我们现在的需求是天天早上8点钟执行一个任务 , 在不到这个时间的时候不发送信息 , 为了简便理解 , 我打算直接循环扫描系统当前时间 , 假如到了我们需要的那个时间点 , 就发送 , 不到的时候就一直扫描
代码实现
import timewhile True:# 刷新time_now = time.strftime("%H:%M:%S", time.localtime)# 此处设置天天定时的时间if time_now == "15:29:00":# 需要执行的动作print('定时任务执行一次')time.sleep(2) # 因为以秒定时 , 所以暂停2秒 , 使之不会在1秒内执行多次结果:
/usr/bin/python3.7 /home/baldwin/PycharmProjects/IAmADog/DoWork.py定时任务执行一次Traceback (most recent call last):File "/home/baldwin/PycharmProjects/IAmADog/DoWork.py", line 7, in moduletime_now = time.strftime("%H:%M:%S", time.localtime)KeyboardInterruptProcess finished with exit code 1我是15:28:00的时候运行程序的 , 在设置时刻确实是执行了程序 。
下面的异常是因为我手动退出了程序 , 这里不用管他 。
详细实现发送情话
我们这里整理一下详细需求:
1.定时间点发送(上面已经实现了)
2.每次发送的时候从list中取出一个句子 , 下一次取出下一条 , 不能重复
3.list中的句子发送完毕之后要发短信通知我
取句子
思路:设置一个全局变量index , 代表着下一条要发送的句子的下标 , 每次发送短信后 , 下标要增加1
发送完毕通知治理员
思路:每次进入任务但是发送短信之前都要比较index的值与list的长度(现在想起来 , 设计程序的时候用栈来储存数据会更好) , 假如index已经越界 , 直接给治理员发短信通知 。
实现
from spider import Spiderfrom send import Sendimport timeTIME_TO_DO = '08:30:00' # 发送时间点MSG_SUFFIX = '来自你的小可爱——Baldwin' # 短信后缀SOURCE_URL = 'http://www.1juzi.com/new/150542.html' # 情话资源地址SEND_TO_TEL = '+8618436354553' # 女神的手机号SEND_TO_ME = '舔狗 , 给女神发的短信已经用光了 , 快来更新!!!'MY_TEL = '+8618436354553' # 舔狗手机号index = 0 # 下一条短信的下标sentenceList = Spider.getSentenceList(SOURCE_URL) # 情话列表while True:# 刷新time_now = time.strftime("%H:%M:%S", time.localtime)# 此处设置天天定时的时间if time_now == TIME_TO_DO:# 需要执行的动作# 判定当前list有没有用光if index = len(sentenceList):# 用光了就短信通知我Send.sendSMSMsg(SEND_TO_ME, MY_TEL)# 跳出break# 给女神发短信content = sentenceList[index] + MSG_SUFFIXSend.sendSMSMsg(content, SEND_TO_TEL)# 下标加一index += 1# 因为以秒定时 , 所以暂停2秒 , 使之不会在1秒内执行多次time.sleep(2)debug模式下的各项测试:
- 哪些物品不能放在车内?小心变成“不定时炸弹”
- 什么是碘盐?天天摄入多长碘最好?碘盐的作用
- 每天洗头有什么危害 天天洗头的危害在哪里
- 承受天天百万级访问量的网站需要多长台服务器?
- 健身3大误区
- 微信手持弹幕怎么玩 怎么发送给好友
- react切换路由的话怎么清除定时器react怎样跳转到另一个页面
- 2022-2023北京供暖天天晚上都要封火吗
- 2018年惊蛰是哪一天天气还会冷吗
- 2022-2023北京供暖天天几点到几点停止