在深圳地铁延误、临停n次之后

总算让我不得不又new了一个py文件

这次首要记录的是一个延误告警的开发过程

一、完成逻辑

运用库:requests,time,zmail,re

完成逻辑:

1、抓取深圳地铁微博的文章

2、判断是否有延误相关的内容

3、判断时刻是否是今日
4、告诉方法:邮件

5、守时履行使命

二、抓取深圳地铁微博(一中1~3)

def goout_report():
    url ="https://weibo.com/ajax/statuses/mymblog"
    # url ="https://weibo.com/szmcservice/statuses/mymblog"
    data = {"uid":2311331195,"page":1,"feature":0}
    headers={
    "accept":"application/json, text/plain, */*",
    "accept-encoding":"gzip, deflate, br",
    "accept-language":"zh-CN,zh;q=0.9",
    "referer":"https://weibo.com/szmcservice?tabtype=feed",
    "cookie":"SUB=_2AkMV8LtUf8NxqwJRmf8XzmLgaY9wywjEieKjrEqPJRMxHRl-yT92ql0ctRB6PnCVuU8iqV308mSwZuO-G9gDVwYDBUdc; SUBP=0033WrSXqPxfM72-Ws9jqgMF55529P9D9WFpwsXV4nqgkyH.bEVfx-Xw; login_sid_t=c6bbe5dc58bf01c49b0209c29fadc800; cross_origin_proto=SSL; _s_tentry=passport.weibo.com; Apache=4724569630281.133.1655452763512; SINAGLOBAL=4724569630281.133.1655452763512; ULV=1655452763517:1:1:1:4724569630281.133.1655452763512:; wb_view_log=1920*10801; XSRF-TOKEN=1YMvL3PsAm21Y3udZWs5LeX3; WBPSESS=xvhb-0KtQV-0lVspmRtycws5Su8i9HTZ6dAejg6GXKXDqr8m6IkGO6gdtA5nN5IMNb5JZ1up7qJoFXFyoP2RSQSYXHY1uLzykpOFENQ07VthB0G9WHKwRCMWdaof42zB4mOkdTEeX_N9-m1x6Cpm3pmPsC1YhmTwqH8RGwXmYkI=",
    "referer":"https://weibo.com/szmcservice",
    "x-requested-with": "XMLHttpRequest",
    "x-xsrf-token":"1YMvL3PsAm21Y3udZWs5LeX3",
    "sec-ch-ua":'Not A;Brand";v="99", "Chromium";v="102", "Google Chrome";v="102',
    "sec-ch-ua-platform":"Windows",
    "sec-fetch-dest": "empty",
    }
    text = requests.get(url,headers=headers,params=data,verify=False).json()['data']['list']
    today_date = time.ctime()[:10]
    for i in range(1,5):
        time_post = text[i]['created_at'][:10]
        content = str(text[i]).split("'text': '")[1].split(", 'textLength'")[0]
        tp=""
        if '延误' in content and time_post == today_date:
            # mail(content)
            text = re.findall(">(.*?)<|>(.*?)\\",content)
            for i in text:
                for j in i:
                    if j!="":
tp=tp+j
   mail(tp)
            break
        else:
            continue

三、邮件告诉,代码如下

def mail(content):
    mail = {
        'subject': '别墨迹了!地铁又双叒叕延误啦',  #邮件标题
        'content_text': content,  # 邮件内容
    }
    server = zmail.server('自己的邮箱', '密码',smtp_host="smtp.qq.com",
                      smtp_port=465) #此处用的qq邮箱、授权码
    server.send_mail('收件人邮箱', mail)

ps:需去QQ邮箱网页版-设置-账户-敞开smtp服务、获取授权码

四、守时履行使命

1、Jenkins比较适宜项目的一个守时履行,

可参阅如下:

jenkins环境:jenkins环境布置踩坑记

git环境:Mac-git环境建立

2、windows-计算机办理比较适宜脚本的履行,具体步骤如下,

  • windows键+R输入compmgmt.msc可进入计算机办理界面

    python-实现地铁延误告警

  • 点击上图“创立使命”后如图,

    “常规”界面上输入使命名称、选项二,

    这样锁屏也会自动履行脚本

    python-实现地铁延误告警

  • 点击“触发器”-新建进入新建触发器界面

    这个界面可设置使命履行时刻、履行频率、使命重复距离、延迟时刻等等

    python-实现地铁延误告警

  • 点击“操作”-新建跳到如图-新建操作界面

    这个界面可在“程序或脚本”输入框设置脚本运转程序,比方python.exe

    在“增加参数”输入框设置需要运转脚本途径(包含脚本名)

    在“起始于”输入框设置脚本履行途径(一般可为脚本目录)

    python-实现地铁延误告警

  • 其他选项卡也可以看看,

    全部填写完可以点击“创立使命”界面上的“确认”按钮,

    然后在列表中找到新建的使命点击可查看,

    python-实现地铁延误告警

  • 实时履行测试的话可以点击上图“运转”按钮

    或许右击使命-运转即可

    使命履行成果如下:

python-实现地铁延误告警