[root@pos ~]
import
requests,bs4,smtplib
def
sendMail(body):
smtp_server
=
'smtp.126.com'
from_mail
=
'pp_1990@126.com'
mail_pass
=
'xxxxxxxxxx'
to_mail
=
[
'50xxxxxx6@qq.com'
]
from_name
=
'Weather Monitor'
subject
=
'Raining Today!'
mail
=
[
"From: %s <%s>"
%
(from_name, from_mail),
"To: %s"
%
','
.join(to_mail),
"Subject: %s"
%
subject,
"",
body
]
msg
=
'\n'
.join(mail)
try
:
s
=
smtplib.SMTP_SSL(
'smtp.126.com'
,
465
)
s.login(from_mail, mail_pass)
s.sendmail(from_mail, to_mail, msg)
s.quit()
except
smtplib.SMTPException as e:
print
(
"Error: "
+
e)
if
__name__
=
=
"__main__"
:
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:24.0) Gecko/20100101 Firefox/24.0'
}
url
=
'http://www.tianqi.com/shanghai/'
urlhtml
=
requests.get(url,headers
=
headers)
urlhtml.raise_for_status()
weatherhtml
=
bs4.BeautifulSoup(urlhtml.text[:],
'html.parser'
)
weather
=
weatherhtml.select(
'div li b'
)
for
i
in
range
(
len
(weather)):
weathnow
=
weather[i].getText()
if
weathnow
=
=
'有雨'
:
sendMail(
"It's rainy today. Remember to bring your umbrella!"
)
print
(
"DONE!"
)