rendrom / rosreestr2coord

Вычисление координат участка по кадастровому номеру с сайта https://pkk.rosreestr.ru
MIT License
167 stars 79 forks source link

Connection refused #72

Closed palandovalex closed 1 month ago

palandovalex commented 1 year ago

В общем, пробую команду rosreestr2coord -c 38:06:144003:4723 и в ответ получаю длинный трейсбек. Причина - сервер росреестра почему то сбросил соединение.

открываю https://pkk.rosreestr.ru/api/features/1/24:39:101001:369 в браузерах - всё нормально. А когда пробую тоже самое через curl и wget - сервер сбрасывает соединение. Понятно, что проблема не в модуле, что то не так с сайтом. Возможно закрыт доступ к agent-id, или же api открыта только для браузеров... Связаться с техподдержкой сайта не удалось. Возможное решение проблемы - маскировать запросы под браузерные.

rendrom commented 1 year ago

Попробуйте так rosreestr2coord -c 38:06:144003:4723 -P

palandovalex commented 1 year ago

Работает, спасибо.

palandovalex commented 1 year ago

Я нашел причину проблем. Если запускать rosreestr2coord в обычном python среде, то всё должно быть в порядке. Но когда запускаешь его в изолированной среде, вроде pipenv, или докера, то может вылезти проблема - модуль requests может быть не у становлен. Прошу добавить его в зависимости, на этот случай.

RomanBespalov commented 1 month ago

Попробуйте так rosreestr2coord -c 38:06:144003:4723 -P

Привет, столкнулся с такой же ошибкой, но мне не помогло. Получаю следующее: команда: rosreestr2coord -c 25:25:180001:496 -P ответ:

Failed to make request after using all proxies

мои зависимости: certifi==2024.8.30 charset-normalizer==3.3.2 contourpy==1.3.0 cycler==0.12.1 fonttools==4.53.1 idna==3.10 kiwisolver==1.4.7 matplotlib==3.9.2 numpy==2.1.1 opencv-contrib-python==4.10.0.84 packaging==24.1 pillow==10.4.0 pyparsing==3.1.4 python-dateutil==2.9.0.post0 requests==2.32.3 rosreestr2coord==4.4.1 six==1.16.0 urllib3==2.2.3

А если делать через редактор кода:

from rosreestr2coord import Area
area = Area('25:25:180001:496')
coords = area.get_coord()
print(coords)

Start downloading area info: https://pkk.rosreestr.ru/api/features/1/25:25:180001:496 [WinError 10054] Удаленный хост принудительно разорвал существующее подключение []

RomanBespalov commented 1 month ago

Попробуйте так rosreestr2coord -c 38:06:144003:4723 -P

Привет, столкнулся с такой же ошибкой, но мне не помогло. Получаю следующее: команда: rosreestr2coord -c 25:25:180001:496 -P ответ: Start downloading area info: https://pkk.rosreestr.ru/api/features/1/25:25:180001:496 Failed to make request after using all proxies

мои зависимости: certifi==2024.8.30 charset-normalizer==3.3.2 contourpy==1.3.0 cycler==0.12.1 fonttools==4.53.1 idna==3.10 kiwisolver==1.4.7 matplotlib==3.9.2 numpy==2.1.1 opencv-contrib-python==4.10.0.84 packaging==24.1 pillow==10.4.0 pyparsing==3.1.4 python-dateutil==2.9.0.post0 requests==2.32.3 rosreestr2coord==4.4.1 six==1.16.0 urllib3==2.2.3

А если делать через редактор кода: from rosreestr2coord import Area area = Area('25:25:180001:496') coords = area.get_coord() print(coords) Start downloading area info: https://pkk.rosreestr.ru/api/features/1/25:25:180001:496 [WinError 10054] Удаленный хост принудительно разорвал существующее подключение []

Решил проблему, мой способ решает сразу две проблемы: одну - сброс соединения, и вторую - с сертификатами. Но я делаю прямой запрос через библиотеку httpx.

import time
import httpx

url = "https://pkk.rosreestr.ru/api/features/1/25:33:180113:10724"

for attempt in range(5):
    try:
        response = httpx.get(url, verify=False)
        if response.status_code == 200:
            data = response.json()
            print(data)
            break
    except httpx.RequestError as e:
        print(f"Попытка {attempt+1}: {e}")
        time.sleep(5)  # Задержка в 5 секунд перед повторной попыткой