#!/usr/bin/env python # -*- coding: utf-8 -*- # # This script collects key figure metrics from hagstofan.is from pynag.Plugins import PluginHelper, ok, unknown import requests from BeautifulSoup import BeautifulSoup url = 'http://hagstofan.is' p = PluginHelper() p.parse_arguments() p.show_legacy = True tmp = requests.get(url) html = tmp.content soup = BeautifulSoup(html, convertEntities=BeautifulSoup.HTML_ENTITIES) keyfigures_table = soup.find('table', {'class': 'keyfigures_small'}) if not keyfigures_table: p.exit(unknown, "Could not find any table with class=keyfigures_small'") rows = keyfigures_table.findAll('tr') for row in rows: textdata = row.find('td', {'class': 'textdata'}) numberdata = row.find('td', {'class': 'numberdata'}) if not textdata or not numberdata: continue # Get the text content out of the <td> cells
from dateutil.parser import parse import requests import sys import time from BeautifulSoup import BeautifulSoup from pynag.Plugins import PluginHelper,ok,warning,critical,unknown reload(sys) sys.setdefaultencoding('utf-8') helper = PluginHelper() helper.parse_arguments() helper.show_legacy = True now = time.time() url = 'http://hraun.vedur.is/ja/skjalftar/skjlisti.html' html = requests.get(url).content soup = BeautifulSoup(html) tables = soup.findAll('table') earthquakes = tables[2] rows = earthquakes.findAll('tr') header_row = rows.pop(0) lines = [] recent_earthquakes = 0 major_earthquakes = 0 for row in rows: columns = row.findAll('td')
reload(sys) sys.setdefaultencoding('utf-8') from BeautifulSoup import BeautifulSoup from pynag.Plugins import PluginHelper, ok, warning, critical, unknown p = PluginHelper() chars = string.letters + string.digits randomstring = ''.join([random.choice(chars) for i in xrange(4)]) # avoid cache default_url = 'http://landspitali.is' p.parser.add_option('--url', dest='url', default=default_url) p.parse_arguments() p.check_all_metrics() p.show_legacy = True html = requests.get(p.options.url).content soup = BeautifulSoup(html) activitylist = soup.find('div', {'class': 'activityNumbers activityNumbersNew'}) activities = activitylist.findAll('div', recursive=False) p.add_metric('metrics_found', value=len(activities), warn='0..1') p.add_summary('%s metrics found on landspitali website' % (len(activities))) for i in activities: metric_name = i.get('class') metric_value = i.find('div', {'class': "todaysCount"}).text heading = i.find('div', {'class': 'heading'}) text = i.find('div', {'class': 'todaysText'})
# Graphs all earthquake measures found from dateutil.parser import parse import requests import sys import time from BeautifulSoup import BeautifulSoup from pynag.Plugins import PluginHelper, ok, warning, critical, unknown reload(sys) sys.setdefaultencoding('utf-8') helper = PluginHelper() helper.parse_arguments() helper.show_legacy = True now = time.time() url = 'http://hraun.vedur.is/ja/skjalftar/skjlisti.html' html = requests.get(url).content soup = BeautifulSoup(html) tables = soup.findAll('table') earthquakes = tables[2] rows = earthquakes.findAll('tr') header_row = rows.pop(0) lines = [] recent_earthquakes = 0 major_earthquakes = 0 for row in rows: columns = row.findAll('td')