• 游啊游
  • 信仰
  • 原点
  • 清明
  • 关不上的窗
  • 雨一直下-古筝
  • 你的样子
  • Sofía
  • Suddenly
  • Traveling Light
  • 城南花已开
  • 简单与秋夜
  • 最美的期待
Oo笑容太甜oO/

python 网站更新提醒脚本UOS自启动


一、代码

import requests
from lxml import etree
from datetime import datetime
import time
import os

i=0
while True:
    url = "http://10.60.2.10/yjnw/zxgg/index.jhtml"
    try:
        content = requests.get(url).content
        html = etree.HTML(content)
        #title = html.xpath("/html/body/div[5]/div[1]/div[1]/div[1]/ul/li[0]//text()")
        title = html.xpath("/html/body/div[5]/div[2]/div[2]/div[2]//text()")
        #获取第一篇文章标题
        lines=title[3].split("\n")    
        print("当前第一条通知:"+lines[0])
        #屏幕打印获取的第一篇文章标题 
        if not os.path.isfile("/home/cbirc/title_temp.txt"):
        #判断title_temp.txt文件是否存在,不存在则创建,并写入获取的第一篇文章标题
            f = open("/home/cbirc/title_temp.txt", "w")
            f.write(str(title[3]))
            print("将当前标题记录在title_temp.txt中,等待检测")  
            f.close()
        else:
        #title_temp.txt文件存在的话,提取里面标题,和获取的标题对比
            with open("/home/cbirc/title_temp.txt", "r+") as f2:
                old_title = f2.readline().split("\n") 
                #old_title = f2.readline().rstrip()
                print("旧的第一条通知:"+old_title[0])
                #print("旧的第一条通知:"+old_title)
                if str(old_title[0]).encode('utf-8') != str(lines[0]).encode('utf-8'):
                #if str(old_title).encode('utf-8') != str(lines[0]).encode('utf-8'):
                #如果读取内容和获取的网站第一篇文章标题不一致,则表明网站更新
                    print("网站有更新,需通知")
                    os.system("notify-send --expire-time=3600000 有新的内网通知")#发送通知
                    print(datetime.now())
                    i=i+1
                    print(i)
                    time.sleep(30)                    
                    f2.seek(0)
                    f2.truncate()                             
                    f2.write(str(lines[0]))
                    f2.close()
                    #写入最新的标题内容,方便下一次比对
                    #break
                    #退出循环                
                else:
                #否则的话,表明网站没有更新        
                    f2.close()                
                    print("网站暂时没有更新")
                    print(datetime.now())
                    #os.system("notify-send --expire-time=60000 无新的通知")#发送通知
                    i=i+1
                    print(i)
        time.sleep(30)
        #检测网页内容时间间隔,单位为秒(s)
    except Exception as e:
        print(e)
    continue

二、通过编写service的方法,使用systemctl配置开机自启

将程序启动命令写入service,通过下面的命令配置开机自启动
systemctl enable XXX.service
注:XXX为service前缀名称

首先编写nei2的service文件,并放在/lib/systemd/system/文件夹下面
内容如下

#save as nei2.service

[Unit]
Description=nei2 Service
After=network.target

[Service]
ExecStart=/home/cbirc/nei2.sh

[Install]
WantedBy=default.target

ExecStart后面添加开机需要运行的命令配置完成后更新并添加开机自启动
这里nei2.sh就一行

#!/bin/sh

/usr/bin/python3 /home/cbirc/nei2.py

sudo systemctl daemon-reload
sudo systemctl restart nei2.service
sudo systemctl enable nei2.service

三、在系统服务中设置为自动

python 网站更新提醒脚本UOS自启动

四、随时暂停

python 网站更新提醒脚本UOS自启动

暂无评论