from playwright.sync_api import Playwright, sync_playwright, expect
from bs4 import BeautifulSoup
import pandas as pd
"""
Odziały:
1. Lublin: "849"
2. Łódź: "2947"
3. Rzeszów: "852"
4. Białystok: "848"
5. Skarżysko-Kamienna: "853"
6. Warszawa: "854"
7. Zamość: "855"
"""
MIASTO = "Milanówek" # <---- nazwa miejscowości
REJON = "Pruszków" # <--- wpisać Rejon
ODDZIAL = "854" # <--- wpisać Oddział
def run(playwright: Playwright) -> None:
browser = playwright.chromium.launch(headless=False)
context = browser.new_context()
# Open new page
page = context.new_page()
# Go to https://pgedystrybucja.pl/planowane-wylaczenia
page.goto("https://pgedystrybucja.pl/planowane-wylaczenia")
# Select 854
page.locator("text=Oddział * --wybierz oddział-- PGE Dystrybucja S.A. Oddział Białystok PGE Dystryb >> select").select_option(ODDZIAL)
# Select Pruszków
page.locator("text=Rejon Energetyczny* --wybierz rejon--Rejon Energetyczny Konstancin JeziornaRejon >> select").select_option(REJON)
# Click text=Pokaż
page.locator("text=Pokaż").click()
# ---------------------
html = page.inner_html('xpath=/html/body/div[3]/div[2]/div[1]/div[4]/div[4]/div/div/div/table')
soup = BeautifulSoup(html, 'html.parser')
tabela = soup.find('tbody')
rows = len(tabela.find_all('tr'))
lista = []
for n in range(0,rows):
slownik = {}
row = tabela.find_all('tr')[n]
if row.td.attrs != {'colspan': '6'}:
all_td = row.find_all('td')
slownik = {
'miasto': all_td[0].find('span', attrs={'class': 'pull-left'}).text.strip(),
'ulica': all_td[0].find('ul').text.replace('\n', ''),
'data_roz': all_td[1].text,
'data_zak': all_td[2].text,
'godziny': all_td[3].text,
# 'stacja': all_td[4].text.replace('\n', '')
}
lista.append(slownik)
df = pd.DataFrame(lista)
# print(df)
new_df = df[ df['miasto'] == MIASTO ]
# print(new_df)
pocz = new_df.iloc[0,2].split()[0]
pocz_h = new_df.iloc[0,2].split()[1]
kon = new_df.iloc[0,3].split()[0]
kon_h = new_df.iloc[0,3].split()[1]
h = new_df.iloc[0,4]
print('\n\n')
print("W dniach od {} do {}, w godzinach {}-{} ({} godzin), w {} - planowane wyłaczenie.".format(pocz,kon,pocz_h, kon_h, h, MIASTO))
context.close()
browser.close()
with sync_playwright() as playwright:
run(playwright)