网站内容更新监控(如何第一时间知道网页信息更新_腾讯视频永恒君的百宝箱)
优采云 发布时间: 2021-08-30 12:07网站内容更新监控(如何第一时间知道网页信息更新_腾讯视频永恒君的百宝箱)
您是否在日常生活中遇到过这样的烦恼,需要上网获取信息,却不知道信息什么时候更新?
有些网站 更人性化。有更新消息会通过微信、短信、邮件或电话通知我们,但大部分还没有,尤其是你想要的信息。
在我们的日常生活中,我们都会和熟人朋友说“有消息通知我”,网上有没有这样的工具可以定制一个类似的追踪器?
今天给大家分享一下这样一款网络追踪器的功能。强大的python还在用。
需求说明
首先明确我们需要实现的功能,比如以我的网站“永远君的宝箱”为例。
要求:关注网站文章,一旦有文章更新,QQ邮箱通知我
(说明:使用QQ邮箱的好处是,一旦有新邮件,会及时在微信中通知。当然你也可以用另一个微信通知,有机会写另一个微信通知。)
解决方案
简要描述解决思路:
1、获取网站页面的源码,提取第一个文章的标题,保存在电脑上;
2、通过程序设置每个固定时间(例如1小时),提取网站first article文章标题。如果与之前存储的标题不一致,则表示有更新。
3、发邮件到qq邮箱通知网站有更新要查看。同时将最新的文章保存到电脑中,以备下次对比。
设计一个网络跟踪程序
有了上面的思路,就轻松搞定了。永永军花了大约3个小时调试下面的代码,分为主程序和邮件程序两部分。
主程序
import requests
from lxml import etree
import time
import os
from sendemail import email
while True:
url = "http://www.yhjbox.com/" #目标跟踪网页
content = requests.get(url).content
html = etree.HTML(content)
title = html.xpath("/html/body/section/div[2]/div/article[1]/header/h2/a/@title")[0]
#获取第一篇文章标题
print("当前的标题为:%s"%title)
#屏幕打印获取的第一篇文章标题
if not os.path.isfile("E:\\title_temp.txt"):
#判断title_temp.txt文件是否存在,不存在则创建,并写入获取的第一篇文章标题
f = open("E:\\title_temp.txt", "w")
f.write(title)
print("将当前标题记录在E:\title_temp.txt中,等待检测")
f.close()
else:
#title_temp.txt文件存在的话,提取里面标题,和获取的标题对比
with open("E:\\title_temp.txt", "r+") as f:
old_title = f.read()
if old_title !=title:
#如果读取内容和获取的网站第一篇文章标题不一致,则表明网站更新
email()#发送qq邮件
f.seek(0)
f.truncate()
print("网站有更新,需通知")
f.write(title)
#写入最新的标题内容,方便下一次比对
break
#退出循环
else:
#否则的话,表明网站没有更新
print("网站暂时没有更新\n")
time.sleep(5)
#检测网页内容时间间隔,单位为秒(s)
邮寄程序
import smtplib
from email.mime.text import MIMEText
from email.header import Header
def email():
sender = 'XXXX@163.com'#填写发件人
pwd = 'XXXX'#登录密码
receivers = ['XXXX@qq.com']#填写收件人
message = MIMEText("你好,网站有内容更新,请及时查看","plain",'utf-8')
# 三个参数:第一个为文本内容,第二个为plain设置文本格式,第三个为utf-8设置编码
message ['From'] = "XXX "
message ['To'] = "XXX "
subject = "网站有内容更新"
#邮件主题
message["Subject"] = subject
try:
# 使用非本地服务器,需要建立ssl连接
smtpObj = smtplib.SMTP_SSL("smtp.163.com",465)
#发件箱邮件服务器
smtpObj.login(sender,pwd)
smtpObj.sendmail(sender,receivers,message.as_string())
print("邮件发送成功")
except smtplib.SMTPException as e:
print("Error:无法发送邮件.Case:%s"%e)
使用方法:
这两个程序存储在同一个文件夹中。邮件程序必须保存为“sendemail.py”。主程序是免费的。然后运行主程序。
运行结果
程序使用演示:
演示如何第一时间知道网页信息更新_腾讯视频
永恒之王已经打包了以上代码,需要合作伙伴的后台wx公众号可以回复“Web Tracking”。
可以自定义程序的地方
目前这个程序还不能做成通用版本,因为根据不同的网站和不同的邮箱,有些地方需要改动:
1、url,即要跟踪的网页的网址
2、title,即得到第一个文章title的xpath地址
3、time.sleep(),即多久检索一次网站信息
4、Mailbox 收发邮件地址
将上述内容更改为自定义个人网络跟踪器所需的内容。关于代码的具体修改,有空我再开个文章再讲。
1、share|教你做一个微信机器人跟你聊天,几行代码
2、给你看不一样的微信!