Last active
May 25, 2017 01:48
-
-
Save pedrovhb/3a6ae8635af67c8c050f267bdf40a336 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
last_seen_day = '' # Pra guardarmos o último dia visto | |
max_height = float('-INF') # Menor valor possível, pra futuras comparações | |
max_height_time = '' # Hora da maior altura | |
max_height_day = '' # Dia da maré com maior altura | |
min_height = float('INF') # Maior valor possível, pra futuras comparações | |
min_height_time = '' # Hora da menor altura | |
min_height_day = '' # Dia da maré com menor altura | |
# Pra cada tr na lista... | |
for tr in tr_list: | |
# Se houver algum elemento no tr com bgcolor #C0C0C0 (legenda), ignorar | |
if tr.find(lambda tag: tag.get('bgcolor') == '#C0C0C0') is not None: | |
continue # Quebrar o loop e ir pro próximo tr | |
# Se só houver um elemento td em tr, ignorar | |
if len(tr.find_all(lambda tag: tag.name == 'td')) == 1: | |
continue | |
# Se houver um elemento com bgcolor #D7D9E8, é um elemento com data | |
if tr.find(lambda tag: tag.get('bgcolor') == '#D7D9E8') is not None: | |
td_list = tr.find_all(lambda tag: tag.name == 'td') | |
# Vimos antes que a string que contém o dia está no elemento número 1 do tr | |
# Anotamos o último dia visto porque se uma das alturas for a maior ou menor, vamos guardá-las com esse dia | |
last_seen_day = td_list[1].text | |
# No elemento 3 está a altura da maré no horário dessa linha de tabela. | |
# Se ela for maior ou menor do que as outras vistas: | |
# - anotamos o valor como maior ou menor | |
# - anotamos o dia como o último dia visto | |
# - anotamos a hora como a hora dessa linha | |
if float(td_list[3].text) > max_height: | |
max_height = float(td_list[3].text) | |
max_height_time = td_list[2].text | |
max_height_day = last_seen_day | |
if float(td_list[3].text) < min_height: | |
min_height = float(td_list[3].text) | |
min_height_time = td_list[2].text | |
min_height_day = last_seen_day | |
continue # Quebrar loop e ir pro próximo tr | |
# Se houver um elemento com bgcolor #FFFFFF, é um elemento só com data e altura | |
if tr.find(lambda tag: tag.get('bgcolor') == '#FFFFFF') is not None: | |
td_list = tr.find_all(lambda tag: tag.name == 'td') | |
# Mesma lógica da de cima | |
if float(td_list[3].text) > max_height: | |
max_height = float(td_list[3].text) | |
max_height_time = td_list[2].text | |
max_height_day = last_seen_day | |
if float(td_list[3].text) < min_height: | |
min_height = float(td_list[3].text) | |
min_height_time = td_list[2].text | |
min_height_day = last_seen_day |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment