网站内容更新的通知( 爬取开发编译器:pycharm网站推送的信息(地址点))

优采云 发布时间: 2021-09-30 09:26

  网站内容更新的通知(

爬取开发编译器:pycharm网站推送的信息(地址点))

  使用python实现简单的网站信息更新自动通知

  因为要及时接收学校*敏*感*词*网站的消息,短时间去网站消耗体力,可能无法及时收到消息,所以有个程序要定时查看网站诞生了。@>是否更新想法。点击这里获取代码地址。

  实现功能

  检查目标网站 是否更新,获取更新并通过电子邮件通知。

  适用场景

   票务网站活动更新通知

学校教务网站更新通知

新剧新番更新通知

查成绩通知

通过程序发邮件,节约登录时间

......

  编译环境

  语言:python3 开发编译器:pycharm

  设计理念

  爬取网站推送的信息作为预存信息引用-->每5分钟爬一次信息,与数据库中预存信息进行比较-->如果不同,调用发送邮件函数,否则继续检查。

  

  代码

  1 调用数据库

  时间、重新、请求、日期时间、smtplib

  时间:实现信息是否每隔固定时间更新一次

  Re: 基于正则表达式匹配字符串,提取信息列表

  日期时间:输出当前时间

  Smtplib:发送邮件

  2 提取信息列表

  def qingqiu():

headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 \

(KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1'} #设置headers信息,模拟成浏览器取访问网站

req = requests.get('目标网站网址', headers=headers) #向网站发起请求,并获取响应对象

content = req.text #获取网站源码

pattern = re.compile(&#39;.html(.*?)</a>&#39;).findall(content) #正则化匹配字符,根据网站源码设置

return pattern #运行qingqiu()函数,会返回pattern的值

  3 更新检测

  def update():

print(&#39;通知系统启动中&#39;)

old_pattern = qingqiu() #记录原始内容列表

while True:

new_pattern = qingqiu() #记录新内容列表

if (new_pattern!= old_pattern): #判断内容列表是否更新

old_pattern=new_pattern #原始内容列表改变

send_email() #发送邮件

else:

now=datetime.datetime.now()

print(now,"尚无更新")

time.sleep(300) # 五分钟检测一次

  4 发送邮件

  def send_email():

HOST = &#39;smtp.163.com&#39; # 网易邮箱smtp

PORT = &#39;465&#39;

fajianren = &#39;*****@163.com&#39; #发送人邮箱

shoujianren = &#39;******@qq.com&#39; #收件人邮箱

title = &#39;信息内容&#39; # 邮件标题

new_pattern = qingqiu() #提取网页内容列表

context = new_pattern[0] # 邮件内容

smtp = smtplib.SMTP_SSL(HOST, 465) # 启用SSL发信, 端口一般是465

res = smtp.login(user=fajianren, password=&#39;******&#39;) # 登录验证,password是邮箱授权码而非密码,需要去网易邮箱手动开启

print(&#39;发送结果:&#39;, res)

msg = &#39;\n&#39;.join(

[&#39;From: {}&#39;.format(fajianren), &#39;To: {}&#39;.format(shoujianren), &#39;Subject: {}&#39;.format(title), &#39;&#39;, context])

smtp.sendmail(from_addr=fajianren, to_addrs=shoujianren, msg=msg.encode(&#39;utf-8&#39;)) # 发送邮件

print(context)

  操作说明

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线