Skip to content

Commit 6ee3eab

Browse files
committed
天气预报增加地区和接收人
1 parent 4361f35 commit 6ee3eab

File tree

1 file changed

+47
-33
lines changed

1 file changed

+47
-33
lines changed

chaoxi/send_weather/send_weather.py

Lines changed: 47 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
21
import smtplib
32
from email.mime.text import MIMEText
43
from email.header import Header
54
import requests
65
from bs4 import BeautifulSoup
76
import prettytable as pt
87

8+
99
def get_Data(url):
1010
data_list = []
1111
response = requests.get(url)
@@ -17,53 +17,67 @@ def get_Data(url):
1717
list = soup.find_all('ul', class_='weather-columns')
1818
for item in list:
1919
data_list.append(item.get_text())
20-
print("列表数据:",data_list)
20+
print("列表数据:", data_list)
2121
a = 1
22-
tb = pt.PrettyTable() #创建PrettyTable对象
23-
tb.field_names = ["日期","天气","详情"]
22+
tb = pt.PrettyTable() # 创建PrettyTable对象
23+
tb.field_names = ["日期", "天气", "详情"]
2424
for item in data_list:
2525
# print(a)
2626
if a != 1:
27-
tb.add_row([item.strip().split()[0]+item.strip().split()[1],item.strip().split()[2],item.strip().split()[3]])
28-
else: print(item.strip())
29-
a+=1
27+
tb.add_row(
28+
[item.strip().split()[0] + item.strip().split()[1], item.strip().split()[2], item.strip().split()[3]])
29+
else:
30+
print(item.strip())
31+
a += 1
3032
print(tb)
3133
return tb
3234

3335

34-
35-
def send_mail(msg,receiver):
36+
def send_mail(msg, receiver_list):
3637
# 收件人
37-
receiver = receiver
38-
mail_title = '小姐姐,请查收今天以及往后15天的天气预报,愿你三冬暖,春不寒'
39-
mail_body = str(msg)
40-
# 创建一个实例
41-
message = MIMEText(mail_body, 'plain', 'utf-8') # 邮件正文
42-
# (plain表示mail_body的内容直接显示,也可以用text,则mail_body的内容在正文中以文本的形式显示,需要下载)
43-
message['From'] = sender # 邮件的发件人
44-
message['To'] = receiver # 邮件的收件人
45-
message['Subject'] = Header(mail_title, 'utf-8') # 邮件主题
46-
47-
smtp = smtplib.SMTP_SSL("smtp.qq.com", 465) # 创建发送邮件连接
48-
smtp.connect(smtpserver) # 连接发送邮件的服务器
49-
smtp.login(username, password) # 登录服务器
50-
smtp.sendmail(sender, receiver, message.as_string()) # 填入邮件的相关信息并发送
38+
# receiver = receiver
39+
# 循环获取多个接收人
40+
for receiver in receiver_list:
41+
mail_title = '小姐姐,请查收今天以及往后15天的天气预报,愿你三冬暖,春不寒'
42+
mail_body = str(msg)
43+
# 创建一个实例
44+
message = MIMEText(mail_body, 'plain', 'utf-8') # 邮件正文
45+
# (plain表示mail_body的内容直接显示,也可以用text,则mail_body的内容在正文中以文本的形式显示,需要下载)
46+
message['From'] = sender # 邮件的发件人
47+
message['To'] = receiver # 邮件的收件人
48+
message['Subject'] = Header(mail_title, 'utf-8') # 邮件主题
5149

52-
smtp.quit()
50+
try:
51+
smtp = smtplib.SMTP_SSL("smtp.qq.com", 465) # 创建发送邮件连接
52+
smtp.connect(smtpserver) # 连接发送邮件的服务器
53+
smtp.login(username, password) # 登录服务器
54+
smtp.sendmail(sender, receiver, message.as_string()) # 填入邮件的相关信息并发送
5355

56+
smtp.quit() # 关闭连接
57+
print("邮件发送成功, 接收人: ", end=receiver)
58+
print()
59+
except smtplib.SMTPException:
60+
print("Error: 邮件发送失败")
5461

5562

5663
if __name__ == '__main__':
57-
sender = 'xxx@qq.com'
64+
sender = '2746824385@qq.com'
5865
# 发件人邮箱的SMTP服务器(即sender的SMTP服务器)
5966
smtpserver = 'smtp.qq.com'
6067
# 发件人邮箱的用户名和授权码(不是登陆邮箱的密码)
61-
username = 'xxxxxx'
68+
username = '2746824385@qq.com'
6269
# 邮箱授权码
63-
password = 'xxxxx'
64-
url1 = 'https://tianqi.so.com/weather/'
65-
url_list = ['url1','url1']
66-
receiver_list ='xxx@qq.com'
67-
tb = get_Data(url1) #获得每一个用户的数据
68-
send_mail(tb,receiver_list) #发送邮件
69-
#
70+
password = 'wfdxhpmdppggdgdh'
71+
# url1 = 'https://tianqi.so.com/weather/' #默认北京
72+
# url1 = 'https://tianqi.so.com/weather/101270106' #成都
73+
url1 = 'https://tianqi.so.com/weather/101260103' # 贵阳花溪
74+
# url1 = 'https://tianqi.so.com/weather/101260112' #贵阳观山湖
75+
# url1 = 'https://tianqi.so.com/weather/101260709' #毕节七星关
76+
# url1 = 'https://tianqi.so.com/weather/101260215' #遵义
77+
url_list = ['url1', 'url1']
78+
# receiver_list = '3402519020@qq.com' #nj
79+
# receiver_list = ['1806459002@qq.com', '2991759263@qq.com']
80+
receiver_list = ['1987908986@qq.com', '2991759263@qq.com'] # sy
81+
# receiver_list = '2296452014@qq.com' #ll
82+
tb = get_Data(url1) # 获得每一个用户的数据
83+
send_mail(tb, receiver_list) # 发送邮件

0 commit comments

Comments
 (0)