#coding=utf-8
import urllib.request
import smtplib
from email.header import Header
from email.mime.text import MIMEText
from bs4 import BeautifulSoup
import ssl
import time
context = ssl._create_unverified_context()
url='https://yjs.qfnu.edu.cn/xsgz.htm';
tmp = {'history':None}
def send_mail(title, article, receiver):
host = 'smtp.qq.com'
user = '自己的邮箱'
passwd = '自己的密码!!!'
sender = user
coding = 'utf8'
message = MIMEText(article, 'plain', coding)
message['From'] = Header(sender, coding)
message['To'] = Header(receiver,coding)
message['subject'] = Header(title, coding)
try:
mail_client = smtplib.SMTP_SSL(host, 465)
mail_client.connect(host)
mail_client.login(user, passwd)
mail_client.sendmail(sender, receiver, message.as_string())
mail_client.close()
print('邮件已成功发送给:' + receiver)
except:
print('发送失败!')
def get_webInfo(url):
req=urllib.request.Request(url)
rsp=urllib.request.urlopen(req,context=context)
html=rsp.read().decode('utf-8','ignore')
html=BeautifulSoup(html,'html.parser')
for link in html.find_all('a',limit=62):
info_link=link.get('href')
info_text=link.get_text(strip=True)
info = [info_text,info_link]
return info
def get_webContext(url):
req=urllib.request.Request(url)
rsp=urllib.request.urlopen(req,context=context)
html=rsp.read().decode('utf-8','ignore')
html=BeautifulSoup(html,'html.parser')
pTitle = ''
pText = ''
for x in html.find_all('h3'):
print(x.get_text())
pTitle += x.get_text()
for y in html.find_all('p'):
pText += y.get_text() +'\n'
print(pText)
res = [pTitle,pText]
return res
def check():
history = tmp['history']
result = get_webInfo(url)
info_text = result[0]
info_link = result[1]
if history == info_text:
print(' ')
else:
print('发现更新')
linkUrl = '链接'+ info_link
ans = get_webContext(linkUrl)
title = ans[0]
article = ans[1]
receiver = '接收的邮箱'
send_mail(title, article, receiver)
if __name__ == '__main__':
while(1):
time.sleep(60*60*2)
check()
07-25
1270

03-22
2万+
