Сохраняем список допустимых полей статистики 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)
 6   9 дн   chatgpt   deepseek   парсинг   справка