Задать вопрос

Как работать с разрозненными данными?

Доброго времени суток. Решил собрать данные с сайта для приложения. Но вот не задача с помощью js мне удобнее спарсить данные с сайта чем на пайтоне, но внутренние страницы с характеристиками мне так уже будет не удобно собрать каким образом можно объединить данные если они не привязаны к id? PS у меня будут два массива. Приходит только как собирать в циклах или брать например pandas-js

Минусы парсинга на пайтоне
Установка библиотек
Получение HTML-кода
Разбор HTML
Много запросов к сайту нужны прокси например
библиотека для управления браузерами

Array.from(document.querySelectorAll(".catalog-product")).map((value, key) => ({
  id: key + 1,
  name: value
    .querySelector(".catalog-product__name > span")
    .innerText.split(" [")[0]
    .replace("Процессор ", ""),
  img: value.querySelector(
    ".catalog-product__image-link > picture > img.loaded"
  ).src,
  price: +value
    .querySelector(".product-buy__price")
    .innerText.replace(" ", "")
    .replace("₽", ""),
  shop: "shop",
  socked: "lga1700",
}));


Результат:
Внешняя страница
[
    {
        'id':1,
        "name": "Intel Core i3-12100F OEM",
        "img": "img",
        "price": "6099 "
    },
,,,,
]

Внутренняя
Внутренняя
{
  "data": {
    "code": "5444958",
    "name": "Процессор Intel Core i3-14100F OEM",
    "specs": "[LGA 1700, 4 x 3.5 ГГц, L2 - 5 МБ, L3 - 12 МБ, 2 х DDR4, DDR5-4800 МГц, TDP 110 Вт]",
    "description": "4-ядерный процессор Intel Core i3-14100F OEM ориентирован на оснащение игровых компьютеров начального уровня и универсальных системных блоков для дома или офиса. Модель произведена по техпроцессу Intel 7 и базируется на архитектуре Raptor Lake. CPU устанавливается в сокет LGA 1700. \nБазовая частота процессора Intel Core i3-14100F OEM – 3.5 ГГц. Максимальное число потоков – 8. В турборежиме частота устройства возрастает до 4.7 ГГц. На скорость выполнения любых вычислений влияют 5-мегабайтный кэш L2 и 12-мегабайтный кэш L3. Технология Intel GNA ускоряет операции искусственного интеллекта. Аппаратная поддержка виртуализации расширяет возможности компьютера при работе с виртуальными машинами. \nПроцессор не имеет интегрированного графического ядра: пользователю ПК потребуется видеоадаптер. Совместимые типы оперативной памяти – DDR4 и DDR5. Процессор поддерживает до 192 ГБ ОЗУ. Максимальная частота памяти – 4800 МГц. \nПроцессор поставляется без кулера. Выбор устройства охлаждения зависит от тепловыделения. TDP процессора 110 Вт позволяет использовать компактную СЖО или малошумный кулер.",
    "price": 8299,
    "bonus": 0,
    "imageUrl": "img",
    "characteristics": {
      "Общие параметры": [
        {
          "title": "Модель",
          "value": "Intel Core i3-14100F"
        },
        {
          "title": "Сокет",
          "value": "LGA 1700"
        },
        {
          "title": "Год релиза",
          "value": "2024"
        },
        {
          "title": "Система охлаждения в комплекте",
          "value": "нет"
        },
        {
          "title": "Термоинтерфейс в комплекте",
          "value": "нет"
        }
      ],
      "Ядро и архитектура": [
        {
          "title": "Общее количество ядер",
          "value": "4"
        },
        {
          "title": "Количество производительных ядер",
          "value": "4"
        },
        {
          "title": "Количество энергоэффективных ядер",
          "value": "0"
        },
        {
          "title": "Максимальное число потоков",
          "value": "8"
        },
        {
          "title": "Объем кэша L2",
          "value": "5 МБ"
        },
        {
          "title": "Объем кэша L3",
          "value": "12 МБ"
        },
        {
          "title": "Техпроцесс",
          "value": "Intel 7"
        },
        {
          "title": "Ядро",
          "value": "Intel Raptor Lake-R"
        }
      ],
      "Частота и возможность разгона": [
        {
          "title": "Базовая частота процессора",
          "value": "3.5 ГГц"
        },
        {
          "title": "Максимальная частота в турбо режиме",
          "value": "4.7 ГГц"
        },
        {
          "title": "Базовая частота энергоэффективных ядер",
          "value": "0 ГГц"
        },
        {
          "title": "Частота в турбо режиме энергоэффективных ядер",
          "value": "0 ГГц"
        },
        {
          "title": "Свободный множитель",
          "value": "нет"
        }
      ],
      "Параметры оперативной памяти": [
        {
          "title": "Тип памяти",
          "value": "DDR4, DDR5"
        },
        {
          "title": "Максимально поддерживаемый объем памяти",
          "value": "192 ГБ"
        },
        {
          "title": "Количество каналов",
          "value": "2"
        },
        {
          "title": "Частота оперативной памяти",
          "value": "DDR4-3200, DDR5-4800"
        },
        {
          "title": "Поддержка режима ECC",
          "value": "нет"
        }
      ],
      "Тепловые характеристики": [
        {
          "title": "Тепловыделение (TDP)",
          "value": "110 Вт"
        },
        {
          "title": "Базовое тепловыделение",
          "value": "58 Вт"
        },
        {
          "title": "Максимальная температура процессора",
          "value": "100 °C"
        }
      ],
      "Графическое ядро": [
        {
          "title": "Интегрированное графическое ядро",
          "value": "нет"
        }
      ],
      "Шина и контроллеры": [
        {
          "title": "Встроенный контроллер PCI Express",
          "value": "PCIe 5.0"
        },
        {
          "title": "Число линий PCI Express",
          "value": "20 шт"
        }
      ],
      "Дополнительная информация": [
        {
          "title": "Технология виртуализации",
          "value": "есть"
        },
        {
          "title": "Особенности, дополнительно",
          "value": "технология Intel GNA"
        }
      ]
    },
    "stamp": 1761077656,
    "rating": 4.89,
    "manufacturerCountry": "Вьетнам",
    "monthWarranty": 12
  }
}
  • Вопрос задан
  • 133 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
Решения вопроса 2
@rPman
Идентификатором может быть сама информация, например наименование (можно вместо строки с именем использовать какой-нибудь хэш, правда существует мизерный шанс их коллизий, так что не плохо проверять на это).
Ответ написан
Комментировать
kawabanga
@kawabanga
А разве это не ИД?
"code": "5444958",


А вообще как выше подметили, можно имя как хэш использовать.

Еще совет - сохраняйте RAW данные при парсинге, чтобы при миграции (добавили данные) - вы могли спокойно запустить простой скрипт и обновить данные ваши.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы