Python|网站启动时收到电子邮件提醒
在本文中,我们将学习如何使用一个简单的Python脚本检查任何网站是否正在运行或已关闭。我们将使用 Python 的 requests 库来发送'get'请求和'smtplib'库来在网站启动时发送电子邮件通知。这意味着我们不需要每次都检查。当网站运行时,我们的Python程序将通过电子邮件通知我们。
此脚本仅检查网站是否已启动。如果它启动,那么它将发送一封电子邮件,如果它关闭,那么它将继续检查,当站点启动时,它将发送一封电子邮件并终止。
安装:
转到命令提示符并编写以下命令:
pip install requests, smtplib
以下是步骤:
- 将整个代码放入 try 块中,以处理异常。
- 向我们想要的网站发送获取请求。
- 如果网站没有运行,那么我们不会得到响应从而引发异常。
- 然后在 except 块中,我们只打印该网站未运行。
- 如果没有抛出异常,则意味着我们得到了响应并且网站正在运行。
- 现在为通过 gmail 登录创建 SMTP 会话。
- 输入正确的 gmail id 和密码。
- 发送邮件并完成。
下面是实现:
Python3
import smtplib, requests, time
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
while(1):
try:
# Replace the url for your desired website
url = "https://www.facebook.com/"
# Send the get request to the website
r = requests.get(url)
# creates SMTP session
s = smtplib.SMTP("smtp.gmail.com", 587)
# start TLS for security
s.starttls()
# Authentication
s.login("sender_gmail_id", "sender_password")
# Instance of MIMEMultipart
msg = MIMEMultipart("alternative")
# Write the subject
msg["Subject"]= url + " is working now."
msg["From"]="sender_gmail_id"
msg["To"]="receiver_gmail_id"
# Plain text body of the mail
text = url + " is running now."
# Attach the Plain body with the msg instance
msg.attach(MIMEText(text, "plain"))
# HTML body of the mail
html ="Your site is running now.
Click here to visit."
# Attach the HTML body with the msg instance
msg.attach(MIMEText(html, "html"))
# Sending the mail
s.sendmail("sender_gmail_id", "receiver_gmail_id", msg.as_string())
s.quit()
print('sent')
break
except:
print('site is down yet...')
print('sleeping...')
# Sleeping for 60 seconds. We can change this interval.
time.sleep(60)
print('Trying again')
continue