Как получить рейтинг организации из Яндекс-Карт

Рейтинг: -4Ответов: 1Опубликовано: 29.05.2023

Подскажите, пожалуйста, как я могу получить значение рейтинга организации на яндекс картах, зная ее id и адрес? Использую следующий код для получения информации об организации.

 try {
        OkHttpClient client = new OkHttpClient();

        String encodedQuery = java.net.URLEncoder.encode(query, StandardCharsets.UTF_8);
        String requestUrl = "https://search-maps.yandex.ru/v1/?text=" + encodedQuery + "&type=biz&lang=ru_RU&results=1&apikey=" + apiKey;

        Request request = new Request.Builder()
                .url(requestUrl)
                .get()
                .build();

        Response response = client.newCall(request).execute();

        if (response.isSuccessful()) {
            assert response.body() != null;
            String responseBody = response.body().string();
            JSONObject jsonResponse = new JSONObject(responseBody);
            JSONArray organizations = jsonResponse.getJSONArray("features");

            for (int i = 0; i < organizations.length(); i++) {
                JSONObject organization = organizations.getJSONObject(i);
                JSONObject properties = organization.getJSONObject("properties");

                String name = properties.getString("name");
                JSONObject addressLine = properties.getJSONObject("CompanyMetaData");
                String address = addressLine.getString("address");
                String id = addressLine.getString("id");


                System.out.println("ID: " + id);
                System.out.println("Название: " + name);
                System.out.println("Адрес: " + address);
                System.out.println("Рейтинг: " + "4.99");
                System.out.println("--------------------");
                System.out.println(organizations);
            }
        } else {
            System.out.println("Ошибка HTTP-запроса: " + response.code());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }    

Ответы

▲ 0

Нашел временное решение

try {
        Document document = Jsoup.connect("https://yandex.ru/maps/org/"+orgName+"/"+id+"/").get();
        Element metaElement = document.selectFirst("meta[itemProp=ratingValue]");
        if (metaElement != null) {
            String ratingValue = metaElement.attr("content");
            System.out.println("Значение рейтинга: " + ratingValue);
        } else {
            System.out.println("Значение рейтинга не найдено.");
        }
    } catch (Exception e) {
        System.out.println("Ошибка при получении страницы: " + e.getMessage());
    }