Skip stations on error

master
Dan Howe 6 years ago
parent 0dd322cf53
commit c2594c39c6

@ -37,14 +37,14 @@ from lxml import html
output_dir = 'csv' output_dir = 'csv'
stn_ids = [ stn_ids = [
2, # Offshore (Directional) Wave 2, # Offshore (Directional) Wave
3, # Bombora (Directional) Wave 3, # Bombora (Directional) Wave
4, # Captain Cook Channel (SG) Wave 4, # Captain Cook Channel (SG) Wave
5, # Kurnell (SG) Wave 5, # Kurnell (SG) Wave
6, # Molineaux Point Wind 6, # Molineaux Point Wind
7, # Sydney Airport (Main Runway BOM) Wind 7, # Sydney Airport (Main Runway BOM) Wind
8, # Brotherson Emergency Response Jetty Tide 8, # Brotherson Emergency Response Jetty Tide
9, # Caltex (Directional) Current 9, # Caltex (Directional) Current
12, # Western Wedding Cake Wind 12, # Western Wedding Cake Wind
13, # Fort Denison (Sth end BOM) Wind 13, # Fort Denison (Sth end BOM) Wind
14, # Overseas Passenger Terminal Wind 14, # Overseas Passenger Terminal Wind
@ -92,16 +92,21 @@ def update_master(output_dir, csv_name, df):
master.to_csv(os.path.join(output_dir, csv_name)) master.to_csv(os.path.join(output_dir, csv_name))
# Get main page def main(stn_id):
url = 'http://wavewindtide.portauthoritynsw.com.au/' """Extract current parameters for selected station.
page = requests.get(url)
tree = html.fromstring(page.content) Args:
stn_id (int): station ID
Returns:
None
"""
for stn_id in stn_ids:
# Get elements from selected station # Get elements from selected station
t_raw = tree.get_element_by_id(f'MainContent_ctl{stn_id:02}_lblRecordDate') t_raw = tree.get_element_by_id(f'MainContent_ctl{stn_id:02}_lblRecordDate')
meas = tree.get_element_by_id(f'MainContent_ctl{stn_id:02}_lblSummary') meas = tree.get_element_by_id(f'MainContent_ctl{stn_id:02}_lblSummary')
description = tree.get_element_by_id(f'MainContent_ctl{stn_id:02}_lblTitle') description = tree.get_element_by_id(
f'MainContent_ctl{stn_id:02}_lblTitle')
# Parse column names # Parse column names
text = re.split(':\s|(m|s|knots|deg)\s', meas.text + ' ') text = re.split(':\s|(m|s|knots|deg)\s', meas.text + ' ')
@ -123,3 +128,15 @@ for stn_id in stn_ids:
# Update master dataframe # Update master dataframe
csv_name = description.text + '.csv' csv_name = description.text + '.csv'
update_master(output_dir, csv_name, df) update_master(output_dir, csv_name, df)
# Get main page
url = 'http://wavewindtide.portauthoritynsw.com.au/'
page = requests.get(url)
tree = html.fromstring(page.content)
for stn_id in stn_ids:
try:
main(stn_id)
except (TypeError, KeyError):
pass

Loading…
Cancel
Save