国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

測試、預發布后用python檢測網頁是否有日常鏈接

2019-11-25 18:24:15
字體:
來源:轉載
供稿:網友
在大的互聯網公司干技術的基本都會碰到測試、預發布、線上這種多套環境的,來實現測試和線上正式環境的隔離,這種情況下,就難免會碰到秀逗了把測試的鏈接發布到線上的情況,一般這種都是通過一些測試的檢查工具來檢查鏈接來規避風險的。前兩天跟了一個問題也是這個情況,開發疏忽把日常url發布到線上了。但是測試那邊沒有自動化的監控工具,導致沒有及時發現,由于最近正好在看python,后來處理完回家就想用python做個簡單的監控。

大略思路是:用python寫一個腳本來分析網頁里的所有url,看是否包含日常的鏈接,然后把腳本放到crontab里跑定時任務,10分鐘跑一次檢查。如果發現非法鏈接,就發告警郵件給相關人員。腳本代碼100行左右,比較好理解,貼上代碼。

本來想用beautifulsoup,不過考慮到安裝三方庫麻煩,所以還是用自帶的sgmllib來,不需要關心庫。發郵件函數沒有實現,根據各自的smtp服務器實現以下即可。
復制代碼 代碼如下:

#!/usr/bin/env python
#coding:UTF-8

import urllib2
from sgmllib import SGMLParser
import smtplib
import time
#from email.mime.text import MIMEText
#from bs4 import BeautifulSoup
#import re

class UrlParser(SGMLParser):
urls = []
def do_a(self,attrs):
'''''parse tag a'''
for name,value in attrs:
if name=='href':
self.urls.append(value)
else:
continue

def do_link(self,attrs):
'''''parse tag link'''
for name,value in attrs:
if name=='href':
self.urls.append(value);
else:
continue

def checkUrl(checkurl, isDetail):
'''''檢查checkurl對應的網頁源碼是否有非法url'''
parser = UrlParser()
page = urllib2.urlopen(checkurl)
content = page.read()
#content = unicode(content, "gb2312").encode("utf8")
parser.feed(content)
urls = parser.urls

dailyUrls = []
detailUrl = ""
for url in urls:
if 'daily' in url:
dailyUrls.append(url);
if not detailUrl and not isDetail and 'www.bc5u.com' in url:
detailUrl = url

page.close()
parser.close()

if isDetail:
return dailyUrls
else:
return dailyUrls,detailUrl

def sendMail():
'''''發送提醒郵件'''
pass

def log(content):
'''''記錄執行日志'''
logFile = 'checkdailyurl.log'
f = open(logFile,'a')
f.write(str(time.strftime("%Y-%m-%d %X",time.localtime()))+content+'/n')
f.flush()
f.close()

def main():
'''''入口方法'''
#檢查ju
url = "www.bc5u.com"

dailyUrls,detailUrl=checkUrl(url, False)
if dailyUrls:
#檢查到daily鏈接,發送告警郵件
sendMail()
log('check: find daily url')
else:
#沒檢查到daily鏈接,不處理
log('check: not find daily url')

#檢查judetail
dailyUrls=checkUrl(detailUrl, True)
if dailyUrls:
#檢查到daily鏈接,發送告警郵件
log('check: find daily url')
sendMail()
else:
#沒檢查到daily鏈接,不處理
log('check: not find daily url')

if __name__ == '__main__':
main()
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 北川| 江阴市| 绩溪县| 栾川县| 平南县| 湖南省| 贵溪市| 礼泉县| 双辽市| 礼泉县| 库尔勒市| 奉新县| 淮北市| 金坛市| 和龙市| 道真| 德庆县| 炎陵县| 涿鹿县| 云阳县| 开平市| 义马市| 台南市| 永胜县| 镇沅| 阿拉善左旗| 通海县| 湘西| 翼城县| 林甸县| 九台市| 泉州市| 南丰县| 辽阳县| 旅游| 眉山市| 河北区| 易门县| 阿拉尔市| 临江市| 北宁市|