一个检测网页是否有日常链接的python脚本 - 半夜乱弹琴

标签: 网页 日常 链接 | 发表时间:2014-04-18 19:45 | 作者:半夜乱弹琴
出处:

     在大的互联网公司干技术的基本都会碰到测试、预发布、线上这种多套环境的,来实现测试和线上正式环境的隔离,这种情况下,就难免会碰到秀逗了把测试的链接发布到线上的情况,一般这种都是通过一些测试的检查工具来检查链接来规避风险的。前两天跟了一个问题也是这个情况,开发疏忽把日常url发布到线上了。但是测试那边没有自动化的监控工具,导致没有及时发现,由于最近正好在看python,后来处理完回家就想用python做个简单的监控。

     大略思路是:用python写一个脚本来分析网页里的所有url,看是否包含日常的链接,然后把脚本放到crontab里跑定时任务,10分钟跑一次检查。如果发现非法链接,就发告警邮件给相关人员。脚本代码100行左右,比较好理解,贴上代码。

  本来想用beautifulsoup,不过考虑到安装三方库麻烦,所以还是用自带的sgmllib来,不需要关心库。发邮件函数没有实现,根据各自的smtp服务器实现以下即可。

1 #!/usr/bin/env python
2 #coding:UTF-8
3
4 import urllib2
5 from sgmllib import SGMLParser
6 import smtplib
7 import time
8 #from email.mime.text import MIMEText
9 #from bs4 import BeautifulSoup
10 #import re
11
12 class UrlParser(SGMLParser):
13 urls = []
14 def do_a(self,attrs):
15 '''parse tag a'''
16 for name,value in attrs:
17 if name=='href':
18 self.urls.append(value)
19 else:
20 continue
21
22 def do_link(self,attrs):
23 '''parse tag link'''
24 for name,value in attrs:
25 if name=='href':
26 self.urls.append(value);
27 else:
28 continue
29
30 def checkUrl(checkurl, isDetail):
31 '''检查checkurl对应的网页源码是否有非法url'''
32 parser = UrlParser()
33 page = urllib2.urlopen(checkurl)
34 content = page.read()
35 #content = unicode(content, "gb2312").encode("utf8")
36 parser.feed(content)
37 urls = parser.urls
38
39 dailyUrls = []
40 detailUrl = ""
41 for url in urls:
42 if 'daily' in url:
43 dailyUrls.append(url);
44 if not detailUrl and not isDetail and 'detail.ju.taobao.com' in url:
45 detailUrl = url
46
47 page.close()
48 parser.close()
49
50 if isDetail:
51 return dailyUrls
52 else:
53 return dailyUrls,detailUrl
54
55 def sendMail():
56 '''发送提醒邮件'''
57 pass
58
59 def log(content):
60 '''记录执行日志'''
61 logFile = 'checkdailyurl.log'
62 f = open(logFile,'a')
63 f.write(str(time.strftime("%Y-%m-%d %X",time.localtime()))+content+'\n')
64 f.flush()
65 f.close()
66
67 def main():
68 '''入口方法'''
69 #检查ju
70 url = "XXX.xxx.com"
71
72 dailyUrls,detailUrl=checkUrl(url, False)
73 if dailyUrls:
74 #检查到daily链接,发送告警邮件
75 sendMail()
76 log('check: find daily url')
77 else:
78 #没检查到daily链接,不处理
79 log('check: not find daily url')
80
81 #检查judetail
82 dailyUrls=checkUrl(detailUrl, True)
83 if dailyUrls:
84 #检查到daily链接,发送告警邮件
85 log('check: find daily url')
86 sendMail()
87 else:
88 #没检查到daily链接,不处理
89 log('check: not find daily url')
90
91 if __name__ == '__main__':
92 main()

 


本文链接: 一个检测网页是否有日常链接的python脚本,转载请注明。

相关 [网页 日常 链接] 推荐:

一个检测网页是否有日常链接的python脚本 - 半夜乱弹琴

- - 博客园_首页
     在大的互联网公司干技术的基本都会碰到测试、预发布、线上这种多套环境的,来实现测试和线上正式环境的隔离,这种情况下,就难免会碰到秀逗了把测试的链接发布到线上的情况,一般这种都是通过一些测试的检查工具来检查链接来规避风险的. 前两天跟了一个问题也是这个情况,开发疏忽把日常url发布到线上了. 但是测试那边没有自动化的监控工具,导致没有及时发现,由于最近正好在看python,后来处理完回家就想用python做个简单的监控.

网页链接触发原生Intent

- - CSDN博客推荐文章
人们每天都要访问大量的手机网页, 如果把手机网页(Web)和应用(App)紧密地联系起来, 就可以增大用户的访问量, 也有其他应用场景, 如 网页中调用支付链接, 新闻中启动问诊界面, 提供优质的原生功能等等.. 如何在网页(Web)中, 通过Intent直接启动应用(App)的Activity呢.

Delicious 以全新姿态重生,基于网页链接的 Flipboard

- Syn - 爱范儿 · Beats of Bits
我们一直关注 Delicious 这家老牌社交书签服务. 自从近年 4 月份 YouTube 创始人陈士骏和 Chad Hurley 收购之后,接下来数月,Delicious 看起来没有多大的变化,但如果今天你登陆 delicious,你一定会大吃一惊,它的变化太大了,犹如焕发新生. Delicious 的首页上面不再是一条一条链接的堆积,而是变成 Flipboard 一样的杂志阅读模式,大大改善了阅读体验,也让人更有探索欲.

全新的Delicious:基于网页链接的Flipboard

- paul - GeekPark 捕风捉影
我们一直关注 Delicious 这家老牌社交书签服务. 自从今年4月份 YouTube 创始人陈士骏和 Chad Hurley 收购之后,接下来数月,Delicious 看起来没有多大的变化,但如果今天你登陆 Delicious,你一定会大吃一惊,它的变化太大了,犹如焕发新生. Delicious 的首页上面不再是一条一条链接的堆积,而是变成 Flipboard 一样的杂志阅读模式,大大改善了阅读体验,也让人更有探索欲.

Tabulate!,快速分享整个Chrome浏览器正在浏览的网页链接

- Jacky - Chrome迷
将目前正在浏览的一个网页迅速做成短url并且分享给好友,貌似这扩展我们以前介绍过. 是一枚可以快速的保存你目前正在Chrome上浏览的所有标签的网页地址,做成指定的url,并在这个url页面上显示出你正在浏览哪些网页的Chrome扩展. 如果你和我一样,习惯一下开10多个页面,当我使用 Tabulate! 后,可以迅速的将这十多个网页链接做成一个url地址,分享到社交网站.

HTTP长链接和短链接

- - Web前端 - ITeye博客
HTTP协议与TCP/IP协议的关系. HTTP的长连接和短连接本质上是TCP长连接和短连接. HTTP属于应用层协议,在传输层使用TCP协议,在网络层使用IP协议. IP协议主要解决网络路由和寻址问题,TCP协议主要解决如何在IP层之上可靠的传递数据包,使在网络上的另一端收到发端发出的所有包,并且顺序与发出顺序一致.

链接大放送

- Fenix - 增强视觉 | 计算机视觉 增强现实
google收购了PittPatt公司. 该公司主要提供人脸检测,识别,跟踪等技术. Picasa里面不是已经有相当强大的人脸识别了么. 这样算来google已经收购了三家CV的创业公司. Google talk中开始采用SRI Technology的SRI 2D视频稳定技术. SRI是一家独立的非盈利的研发机构,鄙人是第一次听说,官网介绍如下:.

911全链接(1)

- Beardnan - 1416 教室
这几天的假期彻底被911打败了. 看了媒体眼花缭乱的911报道,心里只有一个念头,您这么High,下一次怎么弄. 《纽约时报》的网络特刊The Reckoning,分成9个单元,每个单元内容都很丰富,有深度报道也有邀请读者参与的互动;视觉部分则有专题摄影,视频和互动图表相配合. 整个专题的页面清秀,主图是当年911之后的公民摄影展览Here Is New York: A Democracy of Photographs中最为卖座的照片,摄影师Katie Day Weisberger在911事件之前几个月在飞机上拍到了这张照片,当时还是个刚拿相机不久的学生.

Office常用资源链接

- Weiye - ExcelFans
下面是我经常访问的一些站点以及对这些站点的简要介绍,他们都非常优秀,是我重要的学习资源. 国内优秀的Excel专业站点,有着海量的贴子、文章和应用资源,论坛上活跃着大量的MS MVP和Excel技术高手. 站点内容和活动丰富多彩,近几年出版的一系列Excel图书广受读者好评. 著名的Excel博客站点,有许多Excel技术、技巧和应用方面的文章及新鲜资讯,大多都是博主研究和使用Excel的成果,经常有许多Excel界的大师访问并留言或发表文章.

链接器做什么

- - Dutor
  前几天,在组内分享了关于链接器的一些东西,在这里总结一下. 讨论的背景主要是基于C/C++,Linux平台相关.   学习或者了解链接器,有一些基本的问题需要关心:链接器做些什么;链接器和体系结构;程序是怎样生成的.   链接器之所以存在或者产生,基本上是由于程序开发的模块化. 这里讲的模块,主要是编译概念上的模块,通常他们按照功能划分,比如一个.c或者.cpp文件就是一个编译单元,就是一个模块,编译后就产生一个.o目标文件.