In [64]:
!pip install geocoder
!pip install tqdm
!pip install folium
In [65]:
#A biblioteca faz uma solicitação GET ao servidor, que fará o download dos conteúdos HTML da página solicitada para nós.
import requests
from bs4 import BeautifulSoup
page = requests.get("https://weather.com/weather/tenday/l/BRXX0158:1:BR") #Natal
#Instância da classe BeautifulSoup
soup = BeautifulSoup(page.content, 'html.parser')
#Exibe todo o HTML da página
#NÃO RODAR POIS O HTML É MUITO GRANDE E DEMORA
#print(soup.prettify())
#Um status_code com resultado 200 significa que a página foi baixada com sucesso
page.status_code
Out[65]:
In [72]:
#Encontra todas as instâncias
ten_days = soup.find_all("tr", class_="clickable")
ten_days.pop(0)
days_max = []
days_min = []
precips = []
humidity = []
for day in ten_days:
days_max.append(int(day.find("td", class_="temp").find_all("span")[0].get_text().encode('ascii', 'ignore')))
days_min.append(int(day.find("td", class_="temp").find_all("span")[2].get_text().encode('ascii', 'ignore')))
precips.append(int(day.find("td", class_="precip").find_all("span")[2].get_text().encode('ascii', 'ignore')[:-1]))
humidity.append(int(day.find("td", class_="humidity").find_all("span")[0].get_text().encode('ascii', 'ignore')[:-1]))
for i in range(14):
print(str(((days_max[i]-32)/1.8))+"ºC " + str(((days_min[i]-32)/1.8))+"ºC "+str(precips[i])+"% "+str(humidity[i])+"%")
In [73]:
import pandas as pd
#Cada lista de itens que temos é passada como parte de um dicionário
#Cada chave do dicionário vai se tornar uma coluna no DataFrame, e cada lista se tornará os valores da coluna.
weather = pd.DataFrame({
"max": days_max,
"min": days_min,
"precips": precips,
"humidity":humidity
})
weather
Out[73]:
In [74]:
weather.head()
Out[74]:
In [75]:
weather.columns
Out[75]:
In [76]:
weather.shape
Out[76]:
In [77]:
df["humidity"].value_counts().sort_index().plot.pie(autopct="%1.0f%%", label="Desempenho Geral", colors=["green", "red"])
Out[77]:
In [ ]:
# Create a Pandas dataframe from the data.
'''df = pd.DataFrame({
"max": days_max,
"min": days_min,
"precips": precips,
"humidity":humidity})
# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('temperature.xlsx', engine='xlsxwriter')
# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1')
# Get the xlsxwriter objects from the dataframe writer object.
workbook = writer.book
worksheet = writer.sheets['Sheet1']
'''
In [78]:
temp_nums = weather["precips"]
#weather["temp_num"] = temp_nums.astype('double')
temp_nums
Out[78]:
In [54]:
weather["precips"].mean()
Out[54]:
In [ ]:
In [ ]:
In [ ]:
In [ ]: