Сохраняем список допустимых полей статистики API Директа
В процессе работы с API Директа мне часто требуется справка. Особенно часто я обращаюсь к списку допустимых полей статистики, который можно найти по следующей ссылке: https://yandex.ru/dev/direct/doc/ru/fields-list
Однако, к сожалению, эта таблица не очень удобна в использовании. Названия отчетов и полей не закреплены в первых строках и столбцах, из-за чего информация постоянно смещается, и становится сложно понять, где искать нужные данные.
Я хотел бы иметь возможность всегда иметь эту таблицу под рукой, но у меня не было времени заняться её парсингом самостоятельно. Поэтому я обратился к ChatGPT, но у него не получилось. Затем я попробовал DeepSeek, который почти сразу справился с задачей.
Вот код, сгенерированный DeepSeek:
# Установка и загрузка библиотек (если нужно)
if (!require("rvest")) install.packages("rvest")
if (!require("httr")) install.packages("httr")
library(rvest)
library(httr)
# URL страницы
url <- "https://yandex.ru/dev/direct/doc/ru/fields-list"
# Получаем HTML
response <- GET(url)
html_content <- read_html(content(response, "text"))
# Извлекаем все таблицы
tables <- html_content %>% html_table(fill = TRUE)
# Предположим, что нужная таблица — первая
table_data <- tables[[1]]
# Если первая строка — это не заголовки, а вторая — да:
# 1. Сначала читаем таблицу БЕЗ заголовков (header = FALSE)
table_raw <- html_content %>%
html_node("table") %>%
html_table(header = FALSE, fill = TRUE)
# 2. Устанавливаем заголовки из второй строки
colnames(table_raw) <- table_raw[2, ] # Вторая строка становится заголовками
# 3. Удаляем первую и вторую строки (если они не нужны)
table_clean <- table_raw[-c(1, 2), ] # Удаляем первые две строки
# Посмотрим результат
head(table_clean)
# Сохраняем в CSV
write.csv(table_clean, "yandex_direct_fields_clean.csv", row.names = FALSE)