网站内容更新监控(如何第一时间知道网页信息更新_腾讯视频永恒君的百宝箱)

优采云 发布时间: 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、给你看不一样的微信!

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线