程序
import requests
from bs4 import BeautifulSoup
import smtplib
from email.mime.text import MIMEText
from email.header import Header
import time
def getHTMLText(url):
try:
headers = {
'User-Agent':
'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
'ContentType':
'text/html; charset=utf-8',
'Accept-Encoding':
'gzip, deflate, sdch',
'Accept-Language':
'zh-CN,zh;q=0.8',
'Connection':
'keep-alive',
}
r = requests.get(url,headers = headers,timeout = 10)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
print('paqu error')
def HTML2CONTENT(html):
weather_list = []
soup = BeautifulSoup(html,'html.parser')
a = soup.find('div',attrs={'class':'t'}).find_all('li')
for content in a:
try:
weather = {}
weather['day'] = content.find('h1').text
weather['temperature'] = content.find(
'p', class_='tem').span.text + content.find(
'p', class_='tem').em.text
weather_list.append(weather)
except:
print('查询不到')
s1 = weather_list[0]['day']
s2 = weather_list[0]['temperature']
str1 = '今日天津天气情况:' + s1 + ',气温' + s2
print(str1)
return str1
def sendEmail(content,title,from_address,to_address,username,password):
message = MIMEText(content,'plain','utf-8')
host = 'smtp.qq.com'
port = '465'
message = MIMEText(content,'plain','utf-8')
message['From'] = Header(from_address,'utf-8')
message['to'] = Header(to_address,'utf-8')
message['Subject'] = Header(title,'utf-8')
try:
s = smtplib.SMTP_SSL(host,465)
s.login(from_address,'sedosvqexmwcddgf')
s.sendmail(from_address,to_address,message.as_string())
s.quit()
print('邮件发送成功!')
except:
print('邮件发送失败!')
def main():
url = 'http://www.weather.com.cn/weather1d/101030100.shtml#input'
title = '今日天津天气情况'
from_address = '[email protected]'
to_address = '[email protected]'
username = '2716983760'
password = 'tju5b6isph'
html = getHTMLText(url)
list = str(HTML2CONTENT(html))
sendEmail(list,title,from_address,to_address,username,password)
if __name__ == '__main__':
main()
运行结果
