diff --git a/parser.py b/parser.py index fbc3dbe..4bfb274 100644 --- a/parser.py +++ b/parser.py @@ -35,6 +35,7 @@ def parse_days(text: str) -> str: return ''.join(str(b) for b in mask) return '1111111' + def fetch_schedule(tab: int = 1, use_local: bool = False) -> List[Dict]: """ Парсить вкладку розкладу: @@ -60,36 +61,39 @@ def fetch_schedule(tab: int = 1, use_local: bool = False) -> List[Dict]: if not times_table: raise RuntimeError(f'Не знайдено таблицю розкладу для tab={tab}') - # Список станцій (35) + # Список станцій (35), очищаємо префікс 'з.п. ' station_tags = soup.select( f'{prefix} table.left tr.on a.et, ' f'{prefix} table.left tr.onx a.et' ) - stations = [a.get_text(strip=True) for a in station_tags] + stations = [] + for a in station_tags: + raw = a.get_text(strip=True) + # Видаляємо 'з.п. ' на початку + clean = raw + if clean.startswith('з.п. '): + clean = clean[len('з.п. '):] + stations.append(clean) - # Ряди таблиці + # Рядки таблиці trs = times_table.find_all('tr') - - # Рядок з номерами потягів та днями курсування header_row = next(r for r in trs if r.find('td', class_='on_right_t')) train_cells = header_row.find_all('td', class_='on_right_t') - # Парсимо маршрути (