python-实现地铁延误告警
在深圳地铁延误、临停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.exe
在“添加参数”输入框设置需要运行脚本路径(包含脚本名)
在“起始于”输入框设置脚本执行路径(一般可为脚本目录)
其他选项卡也可以看看,
全部填写完可以点击“创建任务”界面上的“确定”按钮,
然后在列表中找到新建的任务点击可查看,
实时执行测试的话可以点击上图“运行”按钮
或者右击任务-运行即可
任务执行结果如下:
作者:WAF910
来源:juejin.cn/post/7231074060788613175
来源:juejin.cn/post/7231074060788613175