Advertisement
jarekmor

PGE_Dystr_wylaczenia

Oct 17th, 2022 (edited)
1,233
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.59 KB | None | 0 0
  1. from playwright.sync_api import Playwright, sync_playwright, expect
  2. from bs4 import BeautifulSoup
  3. import pandas as pd
  4.  
  5. """
  6. Odziały:
  7. 1. Lublin:      "849"
  8. 2. Łódź:     "2947"
  9. 3. Rzeszów:    "852"
  10. 4. Białystok:      "848"
  11. 5. Skarżysko-Kamienna: "853"
  12. 6. Warszawa:    "854"
  13. 7. Zamość:        "855"
  14.  
  15. """
  16.  
  17. MIASTO = "Milanówek"      # <---- nazwa miejscowości
  18. REJON = "Pruszków"      # <--- wpisać Rejon
  19. ODDZIAL = "854"              # <--- wpisać Oddział
  20.  
  21. def run(playwright: Playwright) -> None:
  22.     browser = playwright.chromium.launch(headless=False)
  23.     context = browser.new_context()
  24.     # Open new page
  25.     page = context.new_page()
  26.     # Go to https://pgedystrybucja.pl/planowane-wylaczenia
  27.     page.goto("https://pgedystrybucja.pl/planowane-wylaczenia")
  28.     # Select 854
  29.     page.locator("text=Oddział * --wybierz oddział-- PGE Dystrybucja S.A. Oddział Białystok PGE Dystryb >> select").select_option(ODDZIAL)      
  30.     # Select Pruszków
  31.     page.locator("text=Rejon Energetyczny* --wybierz rejon--Rejon Energetyczny Konstancin JeziornaRejon >> select").select_option(REJON)  
  32.     # Click text=Pokaż
  33.     page.locator("text=Pokaż").click()
  34.     # ---------------------
  35.  
  36.     html = page.inner_html('xpath=/html/body/div[3]/div[2]/div[1]/div[4]/div[4]/div/div/div/table')
  37.     soup = BeautifulSoup(html, 'html.parser')
  38.    
  39.     tabela = soup.find('tbody')
  40.     rows = len(tabela.find_all('tr'))
  41.      
  42.     lista = []
  43.     for n in range(0,rows):
  44.         slownik = {}      
  45.         row = tabela.find_all('tr')[n]
  46.         if row.td.attrs != {'colspan': '6'}:
  47.             all_td =  row.find_all('td')
  48.             slownik = {
  49.                 'miasto': all_td[0].find('span', attrs={'class': 'pull-left'}).text.strip(),
  50.                 'ulica': all_td[0].find('ul').text.replace('\n', ''),
  51.                 'data_roz': all_td[1].text,
  52.                 'data_zak': all_td[2].text,
  53.                 'godziny': all_td[3].text,
  54.                 # 'stacja': all_td[4].text.replace('\n', '')
  55.         }
  56.             lista.append(slownik)
  57.          
  58.     df = pd.DataFrame(lista)
  59.     # print(df)
  60.    
  61.     new_df = df[ df['miasto'] == MIASTO ]
  62.     # print(new_df)
  63.    
  64.     pocz = new_df.iloc[0,2].split()[0]
  65.     pocz_h = new_df.iloc[0,2].split()[1]
  66.     kon = new_df.iloc[0,3].split()[0]
  67.     kon_h = new_df.iloc[0,3].split()[1]
  68.     h = new_df.iloc[0,4]
  69.     print('\n\n')
  70.     print("W dniach od {} do {}, w godzinach {}-{} ({} godzin), w {} - planowane wyłaczenie.".format(pocz,kon,pocz_h, kon_h, h, MIASTO))
  71.    
  72.     context.close()
  73.     browser.close()
  74.  
  75. with sync_playwright() as playwright:
  76.     run(playwright)
  77.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement