Как очистить время общественного транспорта в реальном времени, используя Python?

Это невозможно, потому что функция md5 не является биективной. 2 разных входа могут привести к такому же значению хеша.

-1
задан Martin Evans 20 January 2019 в 14:03
поделиться

1 ответ

Данные в реальном времени обновляются каждую минуту с использованием запроса для JSON. Проще извлечь эту информацию из данных JSON, чем пытаться очистить ее от визуализированного HTML. Например:

from datetime import datetime
import requests

r = requests.get("https://www.ptv.vic.gov.au/langsing/stop-services?stopId=10018306&direction=Altona&limit=20&mode=2")
json_reply = r.json()

for value in json_reply['values']:
    dt_departing = datetime.strptime(value['time_timetable_utc'], '%Y-%m-%dT%H:%M:%SZ')
    departing = dt_departing.strftime("%I:%M%p")   # 12hour format
    line_name = value['platform']['direction']['line']['line_name']
    print(f'{departing} - {line_name}')

даст вам начало данных:

05:57PM - 903 - Altona - Mordialloc (SMARTBUS Service)
06:14PM - 903 - Altona - Mordialloc (SMARTBUS Service)
06:31PM - 903 - Altona - Mordialloc (SMARTBUS Service)
06:41PM - 903 - Altona - Mordialloc (SMARTBUS Service)
06:57PM - 903 - Altona - Mordialloc (SMARTBUS Service)
07:09PM - 903 - Altona - Mordialloc (SMARTBUS Service)
07:20PM - 903 - Altona - Mordialloc (SMARTBUS Service)
07:30PM - 903 - Altona - Mordialloc (SMARTBUS Service)
07:42PM - 903 - Altona - Mordialloc (SMARTBUS Service)
07:51PM - 903 - Altona - Mordialloc (SMARTBUS Service)
08:06PM - 903 - Altona - Mordialloc (SMARTBUS Service)
08:20PM - 903 - Altona - Mordialloc (SMARTBUS Service)
08:32PM - 903 - Altona - Mordialloc (SMARTBUS Service)
08:44PM - 903 - Altona - Mordialloc (SMARTBUS Service)
08:59PM - 903 - Altona - Mordialloc (SMARTBUS Service)
09:14PM - 903 - Altona - Mordialloc (SMARTBUS Service)
09:30PM - 903 - Altona - Mordialloc (SMARTBUS Service)
09:45PM - 903 - Altona - Mordialloc (SMARTBUS Service)
10:00PM - 903 - Altona - Mordialloc (SMARTBUS Service)
10:15PM - 903 - Altona - Mordialloc (SMARTBUS Service)
10:36PM - 706 - Mordialloc - Aspendale - Edithvale - Chelsea
01:32AM - 706 - Mordialloc - Aspendale - Edithvale - Chelsea
02:51AM - 706 - Mordialloc - Aspendale - Edithvale - Chelsea
10:36PM - 706 - Mordialloc - Aspendale - Edithvale - Chelsea

URL-адрес был найден путем просмотра запроса, который браузер отправлял каждые 60 секунд. Вы можете легко настроить время, изменив строку формата , например, чтобы получить день недели, используя "%A %I:%M%p"

0
ответ дан Martin Evans 20 January 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: