from datetime import date, timedelta from pathlib import Path from curl_cffi import requests # from tqdm import tqdm start_date = date(2024, 1, 1) end_date = date(2025, 1, 1) delta = end_date - start_date dates = [str(start_date + timedelta(days=i)) for i in range(delta.days)] z = 8 xs = [153, 154, 155, 156] ys = [79, 80] hours = range(24) vars = [ {"z": z, "x": x, "y": y, "hour": hour, "date": date} for date in dates for hour in hours for x in xs for y in ys ] print(len(vars)) Path("./tiles").mkdir(parents=True, exist_ok=True) def write_tiles(v): date = v["date"] hour = v["hour"] z = v["z"] x = v["x"] y = v["y"] url = f"https://prodvizhenie.mos.ru/tiles/v1/taxi/ride-start/{z}/{x}/{y}.pbf?hours={hour},{hour}&weekdays=1,2,3,4,5,6,7&dates={date},{date}&aggregation=h3" r = requests.get(url, impersonate="chrome") with open(Path(f"./tiles/{date}_{hour}_{z}_{x}_{y}.pbf"), "wb") as f: f.write(r.content) [write_tiles(v) for v in vars]