From 6512076ad86d022b5e15c77f39ae5fd438a8d1b8 Mon Sep 17 00:00:00 2001 From: bvwl <2201101122@qq.com> Date: Fri, 21 Nov 2025 12:25:54 +0800 Subject: [PATCH] 0.1.2 --- spider/work.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/spider/work.py b/spider/work.py index 0ca506b..dad3f53 100644 --- a/spider/work.py +++ b/spider/work.py @@ -4,6 +4,7 @@ from datetime import date, timedelta from typing import Optional, Dict import requests +from bit_browser import retry CA_PROVINCE_ABBR = { @@ -143,6 +144,7 @@ def _random_near(lat: float, lon: float) -> tuple[float, float]: return lat + (random.random() - 0.5) * 0.1, lon + (random.random() - 0.5) * 0.1 +@retry(max_retries=3, delay=1.0, backoff=1.0) def _reverse_geocode(lat: float, lon: float) -> Dict: """ 使用 Nominatim 反向地理编码,返回地址字典 @@ -351,6 +353,9 @@ def generate_canada_info(province: str, city: Optional[str] = None, max_attempts for _ in range(max_attempts): lat, lon = _random_near(base_lat, base_lon) data = _reverse_geocode(lat, lon) + if not data: + time.sleep(sleep_sec) + continue addr = data.get("address", {}) city_name = addr.get("city") or addr.get("town") or addr.get("village") or chosen_city postcode = addr.get("postcode") or ""