我们几乎每时每刻都在刷各种手机app。看看微信有没有人找你 ,看看邮件有没有老板布置的任务,看看新闻有没有大事发生,看看抖音有没有新的傻雕,看看公开课假装学习一下。看起来好像信息时代弄潮儿,其实只沦落为app测试员。
机智如小编,可以写些简单的小脚本收集汇总下信息。但又沦落为自己程序的奴隶。每隔几分钟就跑下自己写的丑陋app,看看有没有更新。这样很不酷啊。什么叫酷,12年前的钢铁侠第一集就给了我们标准答案。所有的信息收集整理和推送都应该交给电脑来做,我们只需要专心注意我们要做的大事上。
如何实现呢?我们需要一个后台程序定时运行任务,推送结果。最简单的解决方案就是用Windows自带的计划任务和电子邮件,步骤如下图
image image image image image同时你的脚本还需要加入发送邮件功能,如果结果是纯文本的话,在邮件客户端里格式可能会乱,所以最好转成html样式。象pandas直接带to_html方法。代码如下
<pre language="typescript" code_block="true">def send_mail(fromaddr, toaddrs, subject, body):
try:
if body.startswith('<'):
msg = MIMEText("<html><body>%s</body></html>"
% (fromaddr, toaddrs, subject, body), 'html', 'utf-8')
msg['From'] = fromaddr
msg['To'] = toaddrs
msg['Subject'] = subject
msg = msg.as_string()
else:
msg = ("From: %s\r\nTo: %s\r\nSubject: %s\n\n%s"
% (fromaddr, ", ".join(toaddrs), subject, body)).encode('utf-8')
print("Message length is", len(msg))
server = SMTP_SSL('smtp.qq.com')
server.set_debuglevel(1)
server.login("test@qq.com", "ssss")
server.sendmail(fromaddr, [toaddrs], msg)
server.quit()
except Exception as e:
print(e)
if name == 'main':
total = load_all_sites(sites).to_html()
from datetime import datetime
time = datetime.now().strftime("%Y-%m-%d %H:%M")
print(time)
print(str(total))
send_mail("test@qq.com", "test@qq.com", f"报表_{time}", str(total))</pre>
注意时间变量time是最好加到subject里的,一是方便日后追踪,二是防止邮件服务误判为垃圾邮件。至于send_mail的细节,请参阅我之前的文章
网友评论