CCCPaste

PKP_info_2

from bs4 import BeautifulSoup
import requests
import pandas as pd
import re

url="https://infopasazer.intercity.pl/?p=station&id=33605"

html_content = requests.get(url)
html_content.encoding = "utf-8"

soup = BeautifulSoup(html_content.text, "lxml")

gdp = soup.find_all("table", attrs={"class": "table table-delay mbn"})
print("Number of tables on site: ",len(gdp))

table1 = gdp[0]
body = table1.find_all("tr")
head = body[0] 
body_rows = body[1:]
headings = ['Numer', 'Przewoznik', 'Data', 'Relacja', 'Przyjazd_plan', 'Opoznienie']

all_rows = [] 
for row_num in range(len(body_rows)):
    row = []
    for row_item in body_rows[row_num].find_all("td"):
        aa = re.sub("(\xa0)|(\n)|,","",row_item.text)
        row.append(aa)
    all_rows.append(row)

df = pd.DataFrame(data=all_rows,columns=headings)

#print all connections from 'Warszawa Centralna' from current time
print(df)

#dataframe for given connection i.e. "Kraków Główny - Gdynia Główna" from 'Warszawa Centralna'
con = 'Kraków Główny - Gdynia'
print()
print('Departure time for connection {} from Warszawa-Centralna'.format(con))
print(df[ df['Relacja'] == 'Kraków Główny - Gdynia Główna' ])


OUTOUT:
Number of tables on site:  2
                Numer          Przewoznik        Data                            Relacja Przyjazd_plan Opoznienie
0            93150/1   Koleje Mazowieckie  2021-11-19        Modlin - Warszawa Centralna         01:00      0 min
1     35170/1 KARPATY       PKP Intercity  2021-11-19      Kraków Główny - Gdynia Główna         05:23      0 min
2  61171/0 KARKONOSZE       PKP Intercity  2021-11-19  Jelenia Góra - Warszawa Wschodnia         05:45      0 min

Departure time for connection Kraków Główny - Gdynia from Warszawa-Centralna
             Numer     Przewoznik        Data                        Relacja Przyjazd_plan Opoznienie
1  35170/1 KARPATY  PKP Intercity  2021-11-19  Kraków Główny - Gdynia Główna         05:23      0 min