Как с помощью регулярки вытащить из строки нужную информацию

Пишу на Java. Получаю страницу стрима с ютуба (через JSoup) и вытаскиваю её код. Из этого кода нужно получить информацию о зрителях и лайках. Для достижения этой цели хочу использовать регулярку, но сколько я не пытался понять как их составлять, до сих пор не получается. Также хотел попробовать преобразовать это в json, но опять-таки ничего не получилось: получаю ошибку, что данная строка не является объектом json.

Помогите составить регулярное выражение или превратить строку в json чтобы удобно из неё вытаскиватт значения

p.s. сам код получаемый от ютуба https://pastebin.com/1biDfSnU


Ответы (1 шт):

Автор решения: komla3

Разобрался сам. Вот код получения лайков и зрителей

private void test(String html) {
    JsonObject mainInfo = new JsonParser().parse(html).getAsJsonArray()
            .get(0).getAsJsonObject()
            .getAsJsonObject("contents")
            .getAsJsonObject("twoColumnWatchNextResults")
            .getAsJsonObject("results")
            .getAsJsonObject("results")
            .getAsJsonArray("contents")
            .get(0).getAsJsonObject()
            .getAsJsonObject("videoPrimaryInfoRenderer");

    JsonObject likesInfo = mainInfo.getAsJsonObject("videoActions")
            .getAsJsonObject("menuRenderer")
            .getAsJsonArray("topLevelButtons")
            .get(0).getAsJsonObject()
            .getAsJsonObject("toggleButtonRenderer")
            .getAsJsonObject("defaultText");

    int viewers = Integer.parseInt(mainInfo.getAsJsonObject("viewCount")
                .getAsJsonObject("videoViewCountRenderer")
                .getAsJsonObject("viewCount")
                .getAsJsonArray("runs")
                .get(1).getAsJsonObject()
                .get("text")
                .getAsString().replaceAll("[^0-9]", "")
    );

    int likes = Integer.parseInt(likesInfo
            .getAsJsonObject("accessibility")
            .getAsJsonObject("accessibilityData")
            .get("label").getAsString().replaceAll("[^0-9]", "")
    );

    String simpleLikes = likesInfo.get("simpleText").getAsString();
    
    System.out.println("Зрителей: " + viewers); //Зрителей: 7475
    System.out.println("Упрощенное кол-во лайков: " + simpleLikes); //Упрощенное кол-во лайков: 2,3 тыс.
    System.out.println("Полное кол-во лайков: " + likes); //Полное кол-во лайков: 2387
}
→ Ссылка