Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement