Веб-скрапинг стал незаменимым инструментом для отдельных лиц и предприятий в современном мире, управляемом данными. Он позволяет нам извлекать ценную информацию с веб-сайтов, превращая неструктурированные данные в действенные идеи. Среди множества веб-сайтов, доступных для скрапинга, Walmart, один из крупнейших в мире ритейлеров, выделяется как ценный источник данных о продуктах. Независимо от того, являетесь ли вы предпринимателем в сфере электронной коммерции, желающим отслеживать цены конкурентов, или энтузиастом данных, заинтересованным в анализе рыночных тенденций, скрапинг страниц продуктов Walmart может предоставить вам массу данных для работы.

В этом пошаговом руководстве мы рассмотрим искусство и науку веб-скрапинга, уделяя особое внимание эффективному скрапингу страниц продуктов Walmart. Мы будем использовать Питон язык программирования, универсальный и широко используемый инструмент в мире веб-скрапинга, а также Crawlbase Crawling API для оптимизации процесса. К концу этого руководства вы будете вооружены знаниями и инструментами для сбора названий продуктов, цен, рейтингов и других ценных данных из обширного онлайн-каталога Walmart.

Прежде чем рассматривать технические аспекты, давайте уделим немного времени тому, чтобы понять, почему веб-скрапинг так важен и почему, в частности, скрапинг страниц товаров Walmart может стать переломным моментом для различных целей.

Содержание

  1. Первые шаги
  • Важность веб-скрапинга
  • Зачем грабить Walmart?
  • Используемые инструменты и технологии
  1. Настройка
  • Установка Python и необходимых библиотек
  • Создание виртуальной среды
  • Получение Crawlbase Ключ API
  1. Понимание структуры страницы поиска Walmart
  • Макет страницы поиска Walmart
  • Проверка HTML для получения селекторов CSS
  1. Создайте свой скрепер Walmart
  • Использование Crawlbase Библиотека Python
  • Управление параметрами и адаптация ответов
  • Скрапинг страницы поиска Walmart
  • Обработка пагинации на странице поиска
  1. Хранение данных
  • Сохранение извлеченных данных в CSV-файле
  • Хранение извлеченных данных в базе данных SQLite
  1. Заключение
  2. FAQ

1. Начиная

В этом мире, управляемом данными, способность собирать и анализировать информацию из сети стала мощным активом. Вот где в игру вступает веб-скрапинг, процесс извлечения данных с веб-сайтов. Он служит мостом между огромным океаном онлайн-информации и вашими конкретными потребностями в данных. Будь то бизнес, исследование или просто любопытство, веб-скрапинг дает вам возможность получать доступ, анализировать и использовать данные, которые когда-то были заперты в глубинах Интернета.

Важность веб-скрапинга

Веб-скрапинг — это преобразующая техника, которая играет ключевую роль в эпоху принятия решений на основе данных. Она подразумевает извлечение данных с веб-сайтов, которые затем могут быть использованы для различных целей в различных доменах. Независимо от того, являетесь ли вы бизнес-профессионалом, аналитиком данных, исследователем или просто энтузиастом информации, веб-скрапинг может стать переломным моментом в вашем поиске данных.

Значимость веб-скрейпинга заключается в его способности преобразовывать неструктурированные веб-данные в структурированные наборы данных, поддающиеся анализу, визуализации и интеграции в приложения. Он позволяет вам быть в курсе событий, принимать решения на основе данных и получать конкурентное преимущество в мире, который становится все более цифровым. Автоматизируя процесс сбора данных, веб-скрейпинг экономит время и ресурсы, которые в противном случае были бы потрачены на ручной ввод данных и мониторинг. Он открывает новые возможности для исследований, анализа рынка, конкурентной разведки и инноваций.

Зачем очищать Walmart?

В обширном пространстве электронной коммерции Walmart является одним из гигантов. Он может похвастаться широким ассортиментом продукции, конкурентоспособными ценами и большой клиентской базой. В результате извлечение данных с веб-сайта Walmart может предоставить бесценную информацию для различных целей: от исследования рынка и отслеживания цен до анализа конкурентов и управления запасами.

Зачем очищать Walmart
  1. Пытливый ум: Для предприятий мониторинг списков продуктов конкурентов, цен и отзывов клиентов на Walmart дает ценную рыночную информацию. Вы можете скорректировать свою ценовую стратегию, оптимизировать описания продуктов или адаптировать свои маркетинговые усилия на основе данных в реальном времени.
  2. Исследования рынка: Веб-скрапинг позволяет отслеживать тенденции рынка и предпочтения потребителей. Вы можете определять новые продукты, отслеживать динамику цен и получать более глубокие знания о покупательском поведении вашей целевой аудитории.
  3. Управление запасами: Розничные торговцы могут использовать собранные данные для синхронизации своего инвентаря с товарными предложениями Walmart. Данные о наличии и ценах в режиме реального времени гарантируют, что ваш инвентарь останется конкурентоспособным и актуальным.
  4. Отзывы потребителей: Обзоры и рейтинги продуктов на платформе Walmart — это золотая жила настроений клиентов. Сбор этих данных позволяет вам понять, что нравится или не нравится клиентам в определенных продуктах, помогая в разработке и улучшении продукта.
  5. Мониторинг цен: Walmart часто корректирует цены на свою продукцию, чтобы оставаться конкурентоспособной. Если вы розничный торговец или реселлер, отслеживание этих колебаний цен может помочь вам принимать обоснованные решения о ценообразовании и оставаться конкурентоспособной на рынке.

2. Используемые инструменты и технологии

Следующие инструменты и технологии облегчат нам путешествие в мир веб-скрапинга страниц продуктов Walmart:

  • Питон: Python — наш выбор языка программирования из-за его простоты, универсальности и богатой экосистемы библиотек. Он предоставляет нам инструменты для написания кода скрапинга и эффективной обработки извлеченных данных.
  • Crawlbase Crawling API: Хотя Python предоставляет нам возможности написания скриптов, мы будем полагаться на Crawlbase Crawling API для получения страниц продуктов Walmart с точностью и надежностью. Вот почему мы решили использовать этот API:
    • Эффективность: Crawlbase оптимизирует процесс создания HTTP-запросов к веб-сайтам, получения HTML-контента и навигации по веб-страницам. Эта эффективность особенно ценна при извлечении данных из крупных веб-сайтов электронной коммерции, таких как Walmart.
    • Надежность: Crawlbase Crawling API разработан для обработки тонкостей веб-скрейпинга, таких как обработка файлов cookie, управление заголовками и работа с мерами против скрапинга. Он обеспечивает нам постоянный доступ к необходимым данным без перерывов.
    • Масштабируемость: Независимо от того, просматриваете ли вы несколько страниц продуктов или тысячи, Crawlbase обеспечивает масштабируемость. Crawling API предлагает возможность ротации IP-адресов, обеспечивая анонимность и снижая риск блокировки веб-сайтами. Он может с легкостью обрабатывать как небольшие, так и крупные проекты по веб-скрейпингу.
    • Обогащение данных: Помимо базового HTML-контента, Crawlbase может извлекать дополнительные данные, такие как контент, обработанный с помощью JavaScript, что делает его надежным выбором для парсинга динамических веб-сайтов.

Теперь, когда мы установили значение веб-скрапинга и конкретные преимущества скрапинга страниц продуктов Walmart, давайте углубимся в технические аспекты. Начнем с настройки нашей среды, получения необходимых инструментов и подготовки к захватывающему путешествию веб-скрапинга.

3. Настройка

Прежде чем мы начнем наше путешествие по веб-скрапингу для извлечения ценных данных со страниц продуктов Walmart, необходимо настроить нашу среду. Этот раздел проведет вас через необходимые шаги по подготовке вашей системы к веб-скрапингу. Мы рассмотрим установку Python и необходимых библиотек, создание виртуальной среды и получение Crawlbase Ключ API.

Установка Python и необходимых библиотек

Python — это сердце нашей операции по веб-скрейпингу, и нам понадобится несколько основных библиотек, чтобы сделать нашу задачу более управляемой. Выполните следующие шаги, чтобы настроить Python и требуемые библиотеки:

  • Установка Python: Если в вашей системе еще не установлен Python, вы можете загрузить последнюю версию с сайта официальный сайт Python. Выберите подходящую версию для вашей операционной системы (Windows, macOS или Linux).

  • Менеджер пакетов - pip: Python поставляется с мощным менеджером пакетов, который называется pip. Он позволяет вам легко устанавливать и управлять пакетами Python. Чтобы проверить, установлен ли у вас pip, откройте терминал или командную строку и выполните следующую команду:

    1
    пип --версия
    • Примечание: If pip не установлен, установщик Python обычно включает его. Вы также можете обратиться к официальная документация pip для инструкции по установке.
  • Основные библиотеки: Для веб-скрапинга нам понадобятся две основные библиотеки Python:

    • Crawlbase Библиотека: Crawlbase Библиотека Python позволяет нам делать HTTP-запросы к Crawlbase Crawling API, упрощая процесс загрузки веб-страниц и обработки ответов. Чтобы установить его, используйте pip:
    1
    pip установить crawlbase
    • Красивый суп: Beautiful Soup — это библиотека Python, которая упрощает парсинг HTML и извлечение данных из веб-страниц. Чтобы установить ее, используйте pip:
    1
    Пип установить BeautifulSoup4
    • Библиотека панд: Кроме того, мы также будем использовать библиотеку Pandas для эффективного хранения и обработки данных. Pandas предоставляет мощные структуры данных и инструменты анализа данных. Чтобы установить Pandas, используйте pip:
    1
    пип установить панды

Имея Python и эти основные библиотеки наготове, мы готовы перейти к следующему шагу: созданию виртуальной среды.

Создание виртуальной среды

Создание виртуальной среды — это лучшая практика при работе над проектами Python. Она позволяет изолировать зависимости, специфичные для проекта, предотвращая конфликты с общесистемными пакетами. Чтобы создать виртуальную среду, выполните следующие действия:

  1. Откройте терминал или командную строку: Запустите терминал или командную строку в зависимости от вашей операционной системы.
  2. Перейдите в каталог вашего проекта.: Используйте команду cd для перехода в каталог, в котором вы планируете работать над проектом веб-скрейпинга. Например:
1
cd путь/к/вашему/каталогу/проекта
  1. Создайте виртуальную среду: Выполните следующую команду, чтобы создать виртуальную среду:
1
python -m venv walmart-venv

Эта команда создаст в каталоге вашего проекта папку с именем «walmart-venv», содержащую чистую среду Python.

  1. Активируйте виртуальную среду: В зависимости от вашей операционной системы используйте соответствующую команду для активации виртуальной среды:
  • Windows:
    1
    walmart-venv\Скрипты\активировать
  • macOS и Linux:
    1
    источник walmart-venv/bin/активировать

После активации приглашение терминала должно измениться, указывая на то, что теперь вы работаете в виртуальной среде.

После настройки и активации виртуальной среды вы можете устанавливать пакеты для конкретного проекта и работать над кодом веб-скрейпинга в изолированной среде.

Получение Crawlbase API Токен

Мы будем использовать Crawlbase Crawling API для эффективного извлечения данных с веб-сайтов. Этот API упрощает процесс создания HTTP-запросов к веб-сайтам, обработки ротации IP-адресов и управления веб-препятствиями, такими как CAPTCHA. Вот как получить ваш Crawlbase Токен API:

  1. Посетить Crawlbase Вебсайт: Перейдите к Crawlbase . В Вашем браузере.
  2. Зарегистрируйтесь или войдите под своим ником: Если у вас еще нет учетной записи, зарегистрируйтесь Crawlbase аккаунт. Если у вас есть аккаунт, войдите в систему.
  3. Получите свой API-токен: После входа в систему перейдите к документации, чтобы получить свой токен API. Crawlbase позволяет пользователям выбирать между двумя типами токенов: токеном Normal (TCP) и токеном JavaScript (JS). Выбирайте токен Normal при работе с веб-сайтами, которые демонстрируют минимальные изменения, такими как статические веб-сайты. Однако, если ваш целевой сайт использует JavaScript для работы или важные данные генерируются с помощью JavaScript на стороне пользователя, токен JavaScript становится незаменимым. Например, при извлечении данных из Walmart токен JavaScript является ключом к доступу к нужной информации. Вы можете получить свой токен API здесь.
  4. Сохраните свой API-токен в безопасности: Ваш API-токен — ценный актив, поэтому держите его в безопасности. Пожалуйста, не делитесь им публично и избегайте его передачи в системы контроля версий, такие как Git. Вы будете использовать этот API-токен в своем коде Python для доступа к Crawlbase Crawling API.

После установки Python и необходимых библиотек создается виртуальная среда и Crawlbase API-токен в руках, вы хорошо подготовлены к погружению в веб-скрапинг страниц продуктов Walmart. В следующих разделах мы рассмотрим структуру страниц Walmart и начнем делать HTTP-запросы для получения необходимых нам данных.

4. Понимание структуры страницы поиска Walmart

В этом разделе мы проанализируем макет веб-сайта Walmart, определим ключевые точки данных, которые мы хотим извлечь, и рассмотрим, как проверить HTML страницы, чтобы получить необходимые селекторы CSS для извлечения данных. Понимание этих основ имеет важное значение, поскольку мы начинаем наше путешествие по эффективному извлечению страниц продуктов Walmart.

Макет страницы поиска Walmart

Для эффективного извлечения данных со страниц поиска Walmart необходимо понимать тщательно разработанную структуру этих страниц. Walmart разработал свои страницы результатов поиска с учетом удобства для пользователей, но этот структурированный формат также хорошо подходит для веб-скрапинга.

Ниже приведен подробный анализ основных элементов, которые обычно встречаются на типичной странице поиска Walmart:

Страница поиска Walmart

Search Bar: Расположенная на видном месте в верхней части страницы, строка поиска служит шлюзом к обширной базе данных продуктов Walmart. Покупатели используют эту функцию для ввода поисковых запросов и начала исследования продуктов.

Сетка результатов поиска: На странице представлена ​​сетка списков продуктов прямо под фильтрами поиска. Каждый список содержит важную информацию, включая название продукта, цену и рейтинги. Эти точки данных — жемчужины нашей миссии по веб-скрейпингу.

Карты продуктов: Каждый листинг продукта инкапсулирован в карточку продукта, что делает его дискретной сущностью в сетке. Эти карточки обычно включают изображение, название продукта, цену и рейтинги. Извлечение данных из этих карточек является нашей основной целью во время веб-скрапинга.

Управление пагинацией: В ситуациях, когда результаты поиска выходят за рамки одной страницы, Walmart предусмотрительно включает элементы управления пагинацией в нижней части страницы. Эти элементы управления позволяют пользователям перемещаться по дополнительным страницам результатов. Как скраперы, мы должны быть оснащены для обработки пагинации для всестороннего сбора данных.

Фильтры и параметры сортировки: Walmart предоставляет пользователям различные фильтры и параметры сортировки для уточнения результатов поиска. Хотя эти функции важны для пользователей, они часто являются другими целями веб-скрейпинга.

Проверка HTML для получения селекторов CSS

Мы должны определить элементы HTML, которые содержат информацию, которую мы жаждем извлечь из данных веб-страниц. В этой задаче нам на помощь приходят инструменты веб-разработки и инструменты разработчика браузера. Давайте рассмотрим, как можно проверить структуру HTML и извлечь эти драгоценные селекторы CSS:

Проверка страницы поиска Walmart
  1. Открыть веб-страницу: Перейдите на сайт Walmart и перейдите на любую страницу поиска, которая вас интересует.
  2. Щелкните правой кнопкой мыши и выберите «Проверить».: Используйте свое мастерство щелчка правой кнопкой мыши на элементе, который вы хотите извлечь (например, карточка продукта), и выберите «Проверить» или «Проверить элемент» из контекстного меню. Это мистическое заклинание вызовет инструменты разработчика браузера.
  3. Найдите исходный HTML-код: В пределах инструментов разработчика исходный код HTML веб-страницы раскроет свои секреты. Наведите курсор на различные элементы на панели HTML и наблюдайте, как соответствующие части веб-страницы магически подсвечиваются.
  4. Определите селекторы CSS: Чтобы извлечь данные из определенного элемента, щелкните его правой кнопкой мыши в инструментах разработчика и изящно выберите «Копировать» > «Копировать селектор». Этот элегантный маневр перенесет селектор CSS для этого элемента в буфер обмена, готовый к использованию в ваших заклинаниях по веб-скрапингу.

Погрузившись глубоко в HTML и извлекая эти неуловимые селекторы CSS, вы будете вооружены для точного нацеливания нужных элементов при создании вашей симфонии веб-скрейпинга. В следующих разделах эти селекторы будут служить эфирными струнами, которые резонируют с данными, извлекая их из веб-страниц Walmart с изяществом.

Теперь, когда мы тщательно изучили лабиринтную структуру веб-сайта Walmart и вооружились искусством обнаружения селекторов CSS, мы готовы перейти от теории к практике. В следующих разделах мы отправимся в волнующее путешествие по кодированию, где будем владеть Python, Crawlbase Crawling APIи Beautiful Soup для искусного извлечения данных со страниц поиска Walmart.

5. Создайте свой скрепер Walmart

Теперь, когда мы заложили основу, поняв важность веб-скрапинга, настроив нашу среду и изучив сложную структуру веб-сайта Walmart, пришло время засучить рукава и построить наш скрапер Walmart. В этом разделе мы проведем вас через процесс шаг за шагом, используя мощный Crawlbase Библиотека Python и программирование на Python сделают ваш процесс веб-скрапинга легким и увлекательным.

Использование Crawlbase Библиотека Python

The Crawlbase Библиотека Python служит легкой и свободной от зависимостей оболочкой для Crawlbase API, упрощающие тонкости веб-скрейпинга. Этот универсальный инструмент упрощает такие задачи, как отправка HTTP-запросов на веб-сайты, умелое управление ротацией IP-адресов и изящное маневрирование через веб-препятствия, включая CAPTCHA. Чтобы начать свой путь веб-скрейпинга с помощью этой библиотеки, вы можете легко выполнить следующие шаги:

  1. Импортировать: Владеть грозным Crawling API из Crawlbase библиотеки, вы должны начать с импорта необходимого класса CrawlingAPI. Этот основополагающий шаг прокладывает путь для доступа к диапазону Crawlbase API. Вот краткий обзор того, как можно импортировать эти API:
1
от база сканирования Импортировать CrawlingAPI
  1. Инициализация: С вашей Crawlbase API-токен надежно в руках, следующий важный шаг включает инициализацию класса CrawlingAPI. Этот поворотный момент связывает ваш код с огромными возможностями Crawlbase:
1
api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })
  1. Отправка запроса: Как только ваш класс CrawlingAPI будет готов с вашим Crawlbase API-токен, вы готовы отправлять запросы на ваши целевые веб-сайты. Вот практический пример создания запроса GET, предназначенного для извлечения списков iPhone со страницы поиска Walmart:
1
2
3
ответ = api.get(«https://www.walmart.com/search?q=iPhone»)
if ответ['status_code'] == 200:
Распечатать(ответ['тело'])

Достаточно воспользоваться ИИ-ассистентом презентера Crawlbase Библиотека Python в качестве вашего верного спутника, вы можете уверенно отправиться в свою одиссею веб-скрейпинга. Для более глубокого погружения в ее возможности вы можете изучить дополнительные детали здесь.

Управление параметрами и адаптация ответов

Прежде чем приступить к веб-скрапингу, важно понять, как эффективно управлять параметрами и настраивать ответы с помощью Crawlbase Crawling API. Эта гибкость позволяет вам создавать запросы, точно соответствующие вашим уникальным требованиям, предлагая действительно индивидуальный и эффективный опыт скрапинга. Давайте углубимся в тонкости управления параметрами и настройки ответов.

Управление параметрами с помощью Crawlbase Crawling API

The Crawlbase Crawling API предлагает множество параметров в вашем распоряжении, позволяя вам точно настраивать ваши запросы на скрапинг. Эти параметры могут быть адаптированы под ваши уникальные потребности, делая ваши усилия по скрапингу более эффективными и точными. Вы можете изучить полный список доступных параметров в Документация по API.

Чтобы проиллюстрировать использование параметров на практическом примере, предположим, что вы хотите получить данные о продуктах iPhone в Walmart. Вы можете сделать запрос GET на страницу поиска Walmart, указав такие параметры, как «user_agent» и «format»:

1
2
3
4
5
6
ответ = api.get(«https://www.walmart.com/search?q=iPhone», {
'user_agent': «Mozilla/5.0 (Windows NT 6.2; rv:20.0) Gecko/20121202 Firefox/30.0»,
'формат': 'json'
})
if ответ['status_code'] == 200:
Распечатать(ответ['тело'])

В этом примере мы установили параметр «user_agent» для имитации определенного браузерного user agent и выбрали формат «JSON» для ответа. Эти параметры позволяют вам точно адаптировать ваш запрос к вашим конкретным требованиям.

Настройка форматов ответа

При взаимодействии с Crawlbase, у вас есть возможность выбора между двумя форматами ответа: HTML и JSON. Ваш выбор зависит от ваших предпочтений и потребностей в парсинге.

Формат ответа HTML: Если вы выберете формат ответа HTML (который используется по умолчанию), вы получите необработанный HTML-контент веб-страницы в качестве ответа. Кроме того, важные параметры ответа будут удобно добавлены в заголовки ответа для легкого доступа. Вот пример того, как может выглядеть такой ответ:

1
2
3
4
5
6
7
Заголовки:
URL: протокол HTTPS://www.walmart.com/search?q=iPhone
оригинальный_статус: 200
pc_status: 200

Тело:
HTML страницы

Формат ответа JSON: В качестве альтернативы вы можете выбрать формат ответа JSON. В этом случае вы получите хорошо структурированный объект JSON, который ваше приложение сможет легко обработать. Этот объект JSON содержит всю необходимую информацию, включая параметры ответа. Вот пример ответа JSON:

1
2
3
4
5
6
{
"исходный_статус": "200",
"статус_ПК": 200,
"URL": "https%3A%2F%2Fwalmart.com%2Fsearch%3Fq%3DiPhone",
«Тело»: "HTML страницы"
}

Благодаря возможности управлять параметрами и настраивать форматы ответов вы получаете инструменты для тонкой настройки запросов на скрапинг и адаптации вывода в соответствии с потребностями вашего проекта. Этот уровень контроля обеспечивает бесперебойный и эффективный опыт веб-скрапинга, позволяя вам извлекать точные данные, которые вам нужны, с веб-страниц Walmart.

Скрапинг страницы поиска Walmart

Теперь, когда мы вооружились глубоким пониманием основ веб-скрапинга и того, как использовать их Crawlbase Библиотека Python, эффективно, пришло время приступить к практическому пути скрапинга страницы поиска Walmart. В этом разделе, ориентированном на разработчиков, мы создадим скрипт Python, который умело извлечет данные о продуктах со страницы результатов поиска Walmart.

Этот скрипт воплощает в себе суть веб-скрапинга: выполнение HTTP-запросов, анализ HTML-контента и извлечение важной информации, которую мы ищем.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
# Импортировать необходимые библиотеки
Импортировать JSON
от bs4 Импортировать КрасивыйСуп
от база сканирования Импортировать CrawlingAPI

# Инициализируйте класс CrawlingAPI с вашим Crawlbase Токен API
api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_JS_CRAWL' })

# Определите поисковый запрос
поисковый_запрос = «iPhone»

# Построить URL запроса
поиск_url = f'https://www.walmart.com/search?q={поисковый_запрос}'

стараться:
# Сделайте запрос GET на страницу поиска Walmart
ответ = api.get(search_url, { 'page_wait': 5000 })

# Проверяем, был ли запрос успешным (код состояния 200)
if ответ['status_code'] == 200:
# Извлеченный HTML-контент после декодирования байтовых данных
search_page_html = ответ['тело'].decode('латинский1')

# Анализ HTML-контента с помощью Beautiful Soup
суп = BeautifulSoup(search_page_html, 'html.парсер')

# Извлечь сведения о продукте
детали_продукта = []

# Найти все контейнеры для продуктов на странице
product_containers = суп.выбрать('div[io-id] div[data-item-id]')

# Пройтись по каждому контейнеру продукта
для контейнер in контейнеры_продуктов:
продукт = {}

# Извлечь цену продукта
продукт['цена'] = контейнер.выберите_один('div[data-automation-id="product-price"] span.f2').текст.полоска()

# Извлечь название продукта
продукт['заглавие'] = контейнер.выберите_один('span[data-automation-id="product-title"]').текст.полоска()

# Извлечь рейтинг продукта
ratingElement = контейнер.select_one('span[data-automation-id="product-title"]').find_parent('охватывать').find_next('див').select_one('span.w_iUH7')
продукт['рейтинг'] = ratingElement.text.strip() if рейтингЭлемент еще ''

# Добавить сведения о продукте в список
product_details.append(продукт)

Распечатать(json.dumps(product_details, отступ=2))

кроме Исключение as e:
Распечатать(f"Произошла ошибка: {е}")

В этом скрипте мы импортируем BeautifulSoup и Crawlbase Библиотека Python. После инициализации класса CrawlingAPI с вашим Crawlbase API-токен, мы определяем поисковый запрос, создаем URL-адрес страницы поиска Walmart и делаем запрос GET, используя Crawlbase API.

При успешном запросе (код статуса 200) мы извлекаем и анализируем HTML-контент страницы поиска с помощью BeautifulSoup. Затем мы фокусируемся на контейнерах продукта, извлекая основные данные продукта, такие как название, цена и рейтинг.
Эти данные организуются в список для дальнейшей обработки, и скрипт завершается печатью извлеченных данных о продукте. Этот скрипт обеспечивает практическую демонстрацию извлечения ценной информации со страницы результатов поиска Walmart с использованием методов веб-скрейпинга.

Пример вывода:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
[
{
"цена": "399",
"заглавие": «AT&T Apple iPhone 11, 64 ГБ, черный — предоплаченный смартфон»,
"рейтинг": "3.8 из 5 звезд. 202 отзыв"
},
{
"цена": "249",
"заглавие": «Straight Talk Apple iPhone 11, 64 ГБ, черный — предоплаченный смартфон [заблокирован для Straight Talk]»,
"рейтинг": "4.2 из 5 звезд. 3244 отзыв"
},
{
"цена": "249",
"заглавие": «Walmart Family Mobile Apple iPhone 11, 64 ГБ, черный — предоплаченный смартфон [заблокирован для Walmart Family Mobile]»,
"рейтинг": "4.1 из 5 звезд. 371 отзыв"
},
{
"цена": "149",
"заглавие": «Straight Talk Apple iPhone SE (2022-3rd Gen) 5G, 64 ГБ, Midnight — предоплаченный смартфон [заблокирован для Straight Talk]»,
"рейтинг": "4.3 из 5 звезд. 576 отзыв"
},
{
"цена": "31",
"заглавие": "AT&T iPhone 15 Pro Max 256 ГБ, натуральный титан",
"рейтинг": "5 из 5 звезд. 2 отзыв"
},
{
"цена": "31",
"заглавие": "Verizon iPhone 15 Pro Max 256 ГБ Натуральный титан",
"рейтинг": "3.7 из 5 звезд. 3 отзыв"
},
{
"цена": "26",
"заглавие": "AT&T iPhone 15 Pro 128 ГБ, натуральный титан",
"рейтинг": ""
},
{
"цена": "26",
"заглавие": "Verizon iPhone 15 Pro 128 ГБ Натуральный титан",
"рейтинг": "4 из 5 звезд. 1 отзыв"
},
{
"цена": "24",
"заглавие": "AT&T iPhone 15 Plus 128 ГБ черный",
"рейтинг": ""
},
....
]

Обработка пагинации на странице поиска

Результаты поиска Walmart часто разбиваются на страницы, что означает, что есть несколько страниц результатов поиска, по которым нужно перемещаться. Чтобы извлечь все релевантные данные, нам нужно обрабатывать пагинацию, проходя по страницам и извлекая данные с каждой страницы.

Вот пример того, как извлечь результаты поиска с нескольких страниц Walmart:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
Импортировать JSON
от bs4 Импортировать КрасивыйСуп
от база сканирования Импортировать CrawlingAPI

# Инициализируйте класс CrawlingAPI с вашим Crawlbase Токен API
api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_JS_CRAWL'})

защиту получить_всего_страниц(поиск_url):
стараться:
ответ = api.get(search_url, {'page_wait': 5000})
if ответ['status_code'] == 200:
search_page_html = ответ['тело'].decode('латинский1')
суп = BeautifulSoup(search_page_html, 'html.парсер')
всего_страниц = Int(суп.выбрать_один('nav[aria-label="pagination"] ul li:nth-last-child(2)').текст)
возвращают всего_страниц
кроме Исключение as e:
Распечатать(f"Произошла ошибка при извлечении общего количества страниц: {е}")
возвращают 1

защиту scrape_page(страница_url):
стараться:
ответ = api.get(page_url, {'page_wait': 5000})
if ответ['status_code'] == 200:
page_html = ответ['тело'].decode('латинский1')
page_soup = КрасивыйСуп(page_html, 'html.парсер')
product_containers = page_soup.select('div[io-id] div[data-item-id]')
детали_продукта = []
для контейнер in контейнеры_продуктов:
продукт = {}
продукт['цена'] = контейнер.выберите_один('div[data-automation-id="product-price"] span.f2').текст.полоска()
продукт['заглавие'] = контейнер.выберите_один('span[data-automation-id="product-title"]').текст.полоска()
ratingElement = контейнер.select_one('span[data-automation-id="product-title"]').find_parent('охватывать').find_next('див').select_one('span.w_iUH7')
продукт['рейтинг'] = ratingElement.text.strip() if рейтингЭлемент еще ''
product_details.append(продукт)
возвращают подробности_о_продукте
кроме Исключение as e:
Распечатать(f"Произошла ошибка при очистке страницы: {е}")
возвращают []

защиту main():
# Определите поисковый запрос
поисковый_запрос = «iPhone»

# Построить URL-адрес запроса для первой страницы
поиск_url = f'https://www.walmart.com/search?q={поисковый_запрос}'

total_pages = get_total_pages(search_url)
все_детали_продукта = []

для страница in ассортимент(1, всего_страниц + 1):
URL_страницы = f'{url_поиска}& page ={страница}'
page_product_details = scrape_page(page_url)
все_детали_продукта.расширить(страница_детали_продукта)

# Распечатать или сохранить все сведения о продукте
Распечатать(json.dumps(all_product_details, indent=2))

if __имя__ == "__основной__":
Основной ()

Этот скрипт Python эффективно извлекает данные о продуктах со страниц результатов поиска Walmart, при этом без проблем обрабатывая пагинацию. Он делает это с помощью двух основных функций: get_total_pages и scrape_page.

The get_total_pages Функция извлекает общее количество страниц для заданного поискового запроса, отправляя запрос GET на начальную страницу поиска. Затем она анализирует содержимое HTML, извлекая последний номер страницы из списка пагинации. Это гарантирует, что скрипт знает количество страниц, которые ему нужно очистить.

The scrape_page Функция обрабатывает фактическое извлечение данных о продукте. Она вводит определенный URL страницы поиска, делает запрос GET и использует BeautifulSoup для извлечения данных о продукте, таких как название, цена и, опционально, рейтинг. Она изящно учитывает случаи, когда у продуктов может не быть рейтинга.

В main Функция, скрипт определяет поисковый запрос, создает URL для начальной страницы поиска и вычисляет общее количество страниц. Затем он проходит по каждой странице, извлекая данные о продукте и накапливая их в списке. Наконец, он выводит собранные данные о продукте в аккуратном формате JSON. Такой подход позволяет извлекать всесторонние данные из нескольких страниц результатов поиска, гарантируя, что ни одна информация о продукте не будет упущена во время пагинации.

Хранение данных

После успешного извлечения данных со страниц поиска Walmart следующим важным шагом является сохранение этой ценной информации для будущего анализа и справки. В этом разделе мы рассмотрим два распространенных метода хранения данных: сохранение извлеченных данных в файле CSV и их сохранение в базе данных SQLite. Эти методы позволяют вам эффективно организовывать и управлять извлеченными данными.

Хранение извлеченных данных в CSV-файле

CSV (значения, разделенные запятыми) — широко используемый формат для хранения табличных данных. Это простой и понятный человеку способ хранения структурированных данных, что делает его отличным выбором для сохранения ваших извлеченных данных о продуктах Walmart.

Мы расширим наш предыдущий скрипт веб-скрейпинга, включив в него шаг сохранения скрейпингованных данных в файл CSV с помощью популярной библиотеки Python, pandas. Вот обновленная версия скрипта:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Импортировать панд as pd
от bs4 Импортировать КрасивыйСуп
от база сканирования Импортировать CrawlingAPI

# Инициализируйте класс CrawlingAPI с вашим Crawlbase Токен API
api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_JS_CRAWL'})

защиту получить_всего_страниц(поиск_url):
# ... (Предыдущий код для получения общего количества страниц)

защиту scrape_page(страница_url):
# ... (Предыдущий код для скрапинга страницы)

защиту main():
# Определите поисковый запрос
поисковый_запрос = «iPhone»

# Построить URL-адрес запроса для первой страницы
поиск_url = f'https://www.walmart.com/search?q={поисковый_запрос}'

total_pages = get_total_pages(search_url)
все_детали_продукта = []

для страница in ассортимент(1, всего_страниц + 1):
URL_страницы = f'{url_поиска}& page ={страница}'
page_product_details = scrape_page(page_url)
все_детали_продукта.расширить(страница_детали_продукта)

# Сохраните полученные данные в виде CSV-файла
df = pd.DataFrame(все_детали_продукта)
df.to_csv('walmart_product_data.csv', индекс=Ложь)

if __имя__ == "__основной__":
Основной ()

В этом обновленном скрипте мы представили pandas — мощную библиотеку обработки и анализа данных. После сбора и накопления данных о продукте в all_product_details list, мы создаем pandas DataFrame из этих данных. Затем мы используем to_csv метод сохранения DataFrame в CSV-файл с именем «walmart_product_data.csv» в текущем каталоге. Настройка index=False гарантирует, что мы не сохраним индекс DataFrame как отдельный столбец в CSV-файле.

Вы можете легко работать с вашими скопированными данными и анализировать их, используя pandas. Этот CSV-файл можно открыть в различных программах для работы с электронными таблицами или импортировать в другие инструменты анализа данных для дальнейшего изучения и визуализации.

Хранение извлеченных данных в базе данных SQLite

Если вы предпочитаете более структурированный и удобный для запросов подход к хранению данных, SQLite — это легкий, бессерверный движок базы данных, который может быть отличным выбором. Вы можете создать таблицу базы данных для хранения ваших извлеченных данных, что позволит эффективно извлекать и обрабатывать данные. Вот как можно изменить скрипт для хранения данных в базе данных SQLite:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
Импортировать JSON
Импортировать sqlite3
от bs4 Импортировать КрасивыйСуп
от база сканирования Импортировать CrawlingAPI

# Инициализируйте класс CrawlingAPI с вашим Crawlbase Токен API
api = CrawlingAPI({токен: 'ВАШ_ТОКЕН_JS_CRAWL'})

защиту create_database():
conn = sqlite3.подключить('walmart_products.db')
курсор = conn.cursor ()
курсор.выполнить('''СОЗДАТЬ ТАБЛИЦУ, ЕСЛИ НЕ СУЩЕСТВУЕТ продукты (
id INTEGER ПЕРВИЧНЫЙ КЛЮЧ АВТОИНКРЕТ,
заголовок ТЕКСТ,
цена ТЕКСТ,
рейтинг ТЕКСТ
)''')
конн.коммит()
conn.close ()

защиту сохранить_в_базу_данных(данным):
conn = sqlite3.подключить('walmart_products.db')
курсор = conn.cursor ()

# Создать список кортежей из данных
кортежи_данных = [(продукт['заглавие'], продукт['цена'], продукт['рейтинг']) для ПРОДУКТЫ in данные]

# Вставьте данные в таблицу продуктов
курсор.executemany('' 'Окно выдачи
ВСТАВИТЬ В продукты (название, цена, рейтинг)
ЦЕННОСТИ (?, ?, ?)
'' 'Окно выдачи, кортежи_данных)

конн.коммит()
conn.close ()

защиту получить_всего_страниц(поиск_url):
# ... (без изменений)

защиту scrape_page(страница_url):
# ... (без изменений)

защиту main():
# Создать базу данных и таблицу продуктов
создать_базу_данных()

# Определите поисковый запрос
поисковый_запрос = «iPhone»

# Построить URL-адрес запроса для первой страницы
поиск_url = f'https://www.walmart.com/search?q={поисковый_запрос}'

total_pages = get_total_pages(search_url)
все_детали_продукта = []

для страница in ассортимент(1, всего_страниц + 1):
URL_страницы = f'{url_поиска}& page ={страница}'
page_product_details = scrape_page(page_url)
все_детали_продукта.расширить(страница_детали_продукта)

# Вставить извлеченные данные в базу данных SQLite
сохранить_в_базе_данных(все_сведения_о_продукте)

if __имя__ == "__основной__":
Основной ()

В этом обновленном коде мы добавили функции для создания базы данных и таблицы SQLite ( create_database ) и сохранения извлеченных данных в базе данных ( save_to_database ). Функция create_database проверяет, существуют ли база данных и таблица, и создает их, если их нет. Функция save_to_database вставляет извлеченные данные в таблицу «products».
Запустив этот код, вы сохраните ваши скопированные данные о продуктах Walmart в базе данных SQLite с именем 'walmart_products.db'. Позже вы сможете извлекать и обрабатывать эти данные с помощью SQL-запросов или получать к ним программный доступ в ваших проектах Python.

6. Заключение

В этом всеобъемлющем исследовании веб-скрапинга мы углубились в огромный потенциал использования данных из Интернета. Веб-скрапинг, искусство извлечения информации из веб-сайтов, стал незаменимым инструментом для предприятий, исследователей и пытливых умов. Он служит мостом между безграничным пространством онлайн-данных и конкретными потребностями в данных, позволяя пользователям получать доступ, анализировать и использовать информацию, ранее скрытую в глубинах Интернета.

Наше внимание было сосредоточено на важности веб-скрапинга, особенно в применении к такому розничному гиганту, как Walmart. Мы показали, как скрапинг веб-сайта Walmart может предоставить массу информации: от конкурентной разведки и маркетинговых исследований до эффективного управления запасами и анализа потребительских настроений. Этот источник данных может произвести революцию в принятии решений в различных отраслях.

Мы вооружились техническими знаниями, чтобы создать среду, необходимую для веб-скрейпинга. От настройки Python и необходимых библиотек до получения Crawlbase Crawling API токен, мы заложили прочный фундамент. Мы прошли через сложную веб-структуру Walmart, оттачивая свои навыки в проверке HTML на предмет селекторов CSS, которые должны были стать нашими инструментами для извлечения данных.

Практика встретилась с теорией, когда мы создали скрапер Walmart с использованием Python и Crawlbase Crawling API. Этот динамический скрипт собирал данные о продуктах со страниц результатов поиска Walmart, умело обрабатывая пагинацию. Наконец, мы поняли важность хранения данных, предложив идеи по сохранению извлеченных данных как в файлах CSV, так и в базах данных SQLite, что позволило пользователям эффективно управлять и анализировать свои сокровища извлеченной информации.

Веб-скрапинг — это больше, чем технологический подвиг; это шлюз к обоснованным решениям, инновациям и рыночным преимуществам в сегодняшнем ландшафте, управляемом данными. Вооружившись этими знаниями, вы готовы раскрыть потенциал веб-скрапинга, обнаружив ценные крупицы данных, которые могут изменить ваши бизнес-стратегии или подпитать ваши исследовательские начинания. Счастливого скрапинга!

7. Часто задаваемые вопросы

В. Как выбрать нужные данные для извлечения со страниц поиска Walmart?

Выбор правильных данных для извлечения со страниц поиска Walmart зависит от ваших конкретных целей. Общие точки данных включают названия продуктов, цены, рейтинги и ссылки. Рассмотрите наиболее релевантную информацию для вашего проекта, будь то анализ ценообразования конкурентов, исследование продукта или мониторинг тенденций. Блог дает представление о ключевых точках данных, которые вы можете извлечь для различных целей.

В. Могу ли я в режиме реального времени просматривать страницы поиска Walmart для получения обновлений цен?

Да, вы можете скрейпить страницы поиска Walmart, чтобы отслеживать обновления цен в реальном времени. Веб-скрейпинг позволяет отслеживать изменения цен на продукты, что может быть полезно для сравнения цен, корректировки вашей собственной стратегии ценообразования или уведомления о снижении или повышении цен. В блоге представлены технические аспекты скрейпинга страниц поиска Walmart, которые вы можете адаптировать для мониторинга в реальном времени.

В. Как мне справиться с пагинацией при извлечении результатов поиска Walmart?

Обработка пагинации при веб-скрапинге имеет решающее значение при работе с несколькими страницами результатов поиска. Вы можете перемещаться по страницам результатов поиска Walmart, увеличивая номер страницы в URL и выполняя последующие HTTP-запросы. Скрипт может быть разработан для продолжения скрапинга данных с каждой страницы до тех пор, пока не останется больше страниц для скрапинга, гарантируя сбор исчерпывающих данных из результатов поиска.

В. Какие типичные проблемы возникают при веб-скрапинге?

Веб-скрапинг может быть затруднен из-за нескольких факторов:

  • Структура сайта: Веб-сайты часто меняют свою структуру, что приводит к необходимости адаптации кода для скрапинга.
  • Меры против царапин: Веб-сайты могут применять такие меры, как CAPTCHA, блокировка IP-адресов или управление сеансами для предотвращения взлома.
  • Качество данных: Извлеченные данные могут содержать несоответствия или ошибки, требующие очистки и проверки.
  • Этические проблемы: Сбор данных должен осуществляться этично, с соблюдением условий веб-сайта и законов о конфиденциальности.