@yozjke

Как получить данные через API яндекс расписания за текущий день?

Мой код:
import json
import requests
from pprint import pprint


link = "https://api.rasp.yandex.net/v3.0/schedule/?apikey=f3a6c277-5bcc-48d9-95ed-6373ba1b6fa5&station=s2014001&transport_types=train&direction=departure&date=2021-01-18"
r = requests.get(link)
trains = json.loads(r.text)
for train in trains["schedule"]:
    print(f"Станция: {trains['station']['title']}")
    print(f"Отправка в {train['departure']}")
    print(f"Номер поезда: {train['thread']['number']}")
    print(f"Направление: {train['thread']['title']}\n") 
 


link = "https://api.rasp.yandex.net/v3.0/schedule/?apikey=f3a6c277-5bcc-48d9-95ed-6373ba1b6fa5&station=s2014001&transport_types=train&event=arrival&date=2021-01-18"
r = requests.get(link)
trains = json.loads(r.text)
for train in trains["schedule"]:
    print(f"Станция: {trains['station']['title']}")
    print(f"Прибытие в: {train['arrival']}")
    print(f"Номер поезда: {train['thread']['number']}")
    print(f"Направление: {train['thread']['title']}\n")

Первый вопрос:
Подскажите пожалуйста как получить данные с яндекс расписания именно за сегодняшний ( актуальный день) без добавления даты в сам requests. Я пишу бота и хочу чтобы он выводил только прибывание и убывание поездов за сегодня. В яндекс документации я не нашел команды по типу "today", там указывается, что дата должна быть указана в формате YYYY-MM-DD.

Второй вопрос:
Как можно сделать, чтобы при выводе данных я получал только данные, которые были бы актуальны на данный момент, т.е. отправление и пребывание поездов за этот день, но время которых уже прошло мне не нужно. Нужны только данные актуальные, с этой таблицы https://voronezhvokzal.ru/raspisanie-poezdov/
Я новичок, простите за глупые вопросы..
Вот, что выводит при запросе таком:

Станция: Воронеж-1
Отправка в 2021-01-18T02:09:00+03:00
Номер поезда: 382Я
Направление: Москва — Грозный

Станция: Воронеж-1
Отправка в 2021-01-18T04:10:00+03:00
Номер поезда: 360Ч
Направление: Калининград — Адлер

Станция: Воронеж-1
Отправка в 2021-01-18T07:23:00+03:00
Номер поезда: 034С
Направление: Москва — Владикавказ

Станция: Воронеж-1
Отправка в 2021-01-18T07:33:00+03:00
Номер поезда: 737Ж
Направление: Воронеж — Москва

Станция: Воронеж-1
Отправка в 2021-01-18T07:55:00+03:00
Номер поезда: 170М
Направление: Москва — Роза Хутор

Станция: Воронеж-1
Отправка в 2021-01-18T12:55:00+03:00
Номер поезда: 035А
Направление: Санкт-Петербург — Адлер

Станция: Воронеж-1
Отправка в 2021-01-18T14:55:00+03:00
Номер поезда: 084С
Направление: Адлер — Москва

Станция: Воронеж-1
Отправка в 2021-01-18T14:57:00+03:00
Номер поезда: 036С
Направление: Адлер — Санкт-Петербург

Станция: Воронеж-1
Отправка в 2021-01-18T16:21:00+03:00
Номер поезда: 739Ж
Направление: Воронеж — Москва

Станция: Воронеж-1
Отправка в 2021-01-18T17:10:00+03:00
Номер поезда: 175В
Направление: Воронеж — Кисловодск

Станция: Воронеж-1
Отправка в 2021-01-18T18:04:00+03:00
Номер поезда: 124В
Направление: Белгород — Новосибирск

Станция: Воронеж-1
Отправка в 2021-01-18T20:30:00+03:00
Номер поезда: 025В
Направление: Воронеж — Москва

Станция: Воронеж-1
Отправка в 2021-01-18T20:55:00+03:00
Номер поезда: 033С
Направление: Владикавказ — Москва

Станция: Воронеж-1
Отправка в 2021-01-18T21:28:00+03:00
Номер поезда: 170С
Направление: Роза Хутор — Москва

Станция: Воронеж-1
Отправка в 2021-01-18T23:50:00+03:00
Номер поезда: 360С
Направление: Адлер — Калининград

Станция: Воронеж-1
Отправка в 2021-01-19T00:28:00+03:00
Номер поезда: 382С
Направление: Грозный — Москва

Станция: Воронеж-1
Отправка в 2021-01-19T02:00:00+03:00
Номер поезда: 123Н
Направление: Новосибирск — Белгород

Станция: Воронеж-1
Прибытие в: 2021-01-18T01:24:00+03:00
Номер поезда: 382Я
Направление: Москва — Грозный

Станция: Воронеж-1
Прибытие в: 2021-01-18T03:23:00+03:00
Номер поезда: 360Ч
Направление: Калининград — Адлер

Станция: Воронеж-1
Прибытие в: 2021-01-18T06:48:00+03:00
Номер поезда: 034С
Направление: Москва — Владикавказ

Станция: Воронеж-1
Прибытие в: 2021-01-18T07:12:00+03:00
Номер поезда: 170М
Направление: Москва — Роза Хутор

Станция: Воронеж-1
Прибытие в: 2021-01-18T08:30:00+03:00
Номер поезда: 025Я
Направление: Москва — Воронеж

Станция: Воронеж-1
Прибытие в: 2021-01-18T09:30:00+03:00
Номер поезда: 175С
Направление: Кисловодск — Воронеж

Станция: Воронеж-1
Прибытие в: 2021-01-18T12:14:00+03:00
Номер поезда: 035А
Направление: Санкт-Петербург — Адлер

Станция: Воронеж-1
Прибытие в: 2021-01-18T14:00:00+03:00
Номер поезда: 084С
Направление: Адлер — Москва

Станция: Воронеж-1
Прибытие в: 2021-01-18T14:18:00+03:00
Номер поезда: 036С
Направление: Адлер — Санкт-Петербург

Станция: Воронеж-1
Прибытие в: 2021-01-18T14:39:00+03:00
Номер поезда: 740Ж
Направление: Москва — Воронеж

Станция: Воронеж-1
Прибытие в: 2021-01-18T16:41:00+03:00
Номер поезда: 124В
Направление: Белгород — Новосибирск

Станция: Воронеж-1
Прибытие в: 2021-01-18T20:06:00+03:00
Номер поезда: 033С
Направление: Владикавказ — Москва

Станция: Воронеж-1
Прибытие в: 2021-01-18T20:46:00+03:00
Номер поезда: 170С
Направление: Роза Хутор — Москва

Станция: Воронеж-1
Прибытие в: 2021-01-18T22:55:00+03:00
Номер поезда: 360С
Направление: Адлер — Калининград

Станция: Воронеж-1
Прибытие в: 2021-01-18T23:12:00+03:00
Номер поезда: 738Ж
Направление: Москва — Воронеж

Станция: Воронеж-1
Прибытие в: 2021-01-18T23:22:00+03:00
Номер поезда: 382С
Направление: Грозный — Москва

Станция: Воронеж-1
Прибытие в: 2021-01-19T00:20:00+03:00
Номер поезда: 123Н
Направление: Новосибирск — Белгород
  • Вопрос задан
  • 125 просмотров
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix
yellow
1. В чем проблема получить текущую датую и передать ее?
from datetime import datetime, timedelta
today = datetime.now().strftime('%Y-%m-%d')


2. Сравнивать текущую дату с датой из расписания, и не выыводить, если рейс уже прошел
from datetime import datetime, timedelta
today_date = datetime.now()

link = "https://api.rasp.yandex.net/v3.0/schedule/?apikey=f3a6c277-5bcc-48d9-95ed-6373ba1b6fa5&station=s2014001&transport_types=train&direction=departure&date=2021-01-18"
r = requests.get(link)
trains = json.loads(r.text)
for train in trains["schedule"]:

    date, tz = train['departure'].split('+')

    date = datetime.strptime(date, '%Y-%m-%dT%H:%M:%S')
    tz = datetime.strptime(tz, '%H:%M')

    date = date + timedelta(hours=tz.hour)

    if date < today_date:
        print('Поезд ушел')

    print(f"Станция: {trains['station']['title']}")
    print(f"Отправка в {train['departure']}")
    print(f"Номер поезда: {train['thread']['number']}")
    print(f"Направление: {train['thread']['title']}\n")


возможно мог ошибиться где нибудь в коде
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы