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

Веб-сайт Target предлагает богатый ландшафт. Имея миллионы страниц продуктов, отзывы клиентов и динамическую информацию о ценах, потенциал для извлечения ценных данных огромен. По состоянию на декабрь 2023 года статистика еще больше подчеркивает значимость присутствия Target в Интернете. Ошеломляющие 234.3 миллиона человек из разных уголков мира посетили сайт, с преобладающим притоком из Соединенных Штатов.

Данные целевого рынка

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

Зачем углубляться в целевое парсинг? Ответ заключается в богатстве возможностей, которые оно открывает. Используя мощь целевого парсера, можно получить конкурентное преимущество, оставаясь впереди в постоянно меняющемся рыночном ландшафте. Присоединяйтесь к нам в этом путешествии, пока мы разбираемся в нюансах веб-парсинга с помощью Питон, начиная с практического подхода «сделай сам» (DIY), а затем изучая эффективность Crawlbase Crawling APIДавайте раскроем секреты, скрытые в цифровых проходах Target, и вооружимся инструментами для эффективного извлечения данных Target.

Оглавление

  1. Понимание структуры SERP Target
  • Структура целевых страниц со списком продуктов
  • Ключевые данные для извлечения
  1. Настройка вашей среды
  • Установка Python и необходимых библиотек
  • Выбор среды разработки IDE
  1. Подход «сделай сам» с Python
  • Использование библиотеки запросов
  • Проверьте целевой веб-сайт на наличие селекторов CSS
  • Использование BeautifulSoup для анализа HTML
  1. Недостатки подхода «сделай сам»
  • Проблемы, связанные с надежностью и масштабируемостью
  • Проблемы технического обслуживания с течением времени
  1. Crawlbase Crawling API: Преодоление ограничений DIY
  • Как это упрощает процесс веб-скрапинга
  • Преимущества использования специального API для веб-скрапинга
  1. Целевой скребок с Crawlbase Crawling API
  • Crawlbase Регистрация и API-токен
  • Доступ к Crawling API Для пользователя Crawlbase Библиотека
  • Извлечение данных о продукте Target без усилий
  • Демонстрация повышения эффективности и надежности
  1. Сравнение: «сделай сам» против Crawlbase Crawling API
  2. Заключение
  3. FAQ

Понимание структуры SERP Target

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

Структура целевых страниц со списком продуктов

Представьте себе веб-сайт Target как хорошо организованный каталог. Как в газете есть заголовки, основные статьи и побочные разделы, страницы со списком продуктов Target следуют структурированному формату.

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

Понимание этой компоновки позволяет нашему скребку Target эффективно перемещаться по виртуальным проходам.

Ключевые данные для извлечения

Теперь, вооружившись пониманием структуры SERP Target, давайте выделим основные точки данных для извлечения:

  1. Объявления о продукции: Основной целью нашей миссии по сбору данных является получение списка продуктов, соответствующих поиску.
  2. Названия продуктов: Так же, как заголовки газет дают быстрое представление о главных событиях, названия продуктов служат заголовками каждого перечисленного товара.
  3. Описания продуктов: Под каждым названием продукта вы обычно найдете краткое описание или фрагмент, дающий представление о функциях продукта, не нажимая на него.
  4. Рекламный контент: Иногда первоначальные результаты могут включать рекламный контент. Распознавание их как рекламных и отделение их от органических листингов имеет решающее значение.
  5. Похожие продукции: Внизу могут быть предложения по связанным продуктам, дающие дополнительные идеи для дальнейшего поиска или связанных тем.

Понимание структуры SERP Target помогает нам эффективно собирать необходимую информацию с цифровых полок Target.

Настройка вашей среды

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

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

Начните с установки Python, универсального языка программирования, который послужит нам основой для веб-скрапинга. Посетите официальный сайт Python и загрузите последнюю версию, подходящую для вашей операционной системы. Во время установки обязательно отметьте галочкой поле «Добавить Python в PATH» для бесперебойной работы.

Теперь давайте вооружимся ключевыми библиотеками для нашего приключения по скрапингу:

  • Библиотека запросов: Незаменимый инструмент для создания HTTP-запросов в Python. Установите его, открыв терминал или командную строку и введя следующую команду:
1
запросы на установку pip
  • Библиотека BeautifulSoup: Эта библиотека, в сочетании с ее опциями парсера, позволяет нам перемещаться и парсить HTML, извлекая нужную информацию. Установите ее с помощью:
1
Пип установить BeautifulSoup4
  • Crawlbase Библиотека: Чтобы использовать Crawlbase Crawling API бесшовно, установите Crawlbase Библиотека Python:
1
pip установить crawlbase

Теперь ваша среда Python оснащена необходимыми инструментами для начала работы по извлечению целевых данных.

Выбор среды разработки IDE

Выбор удобной интегрированной среды разработки (IDE) улучшает ваш опыт кодирования. Популярные варианты включают:

  • Код Visual Studio (VSCode): Легкий, многофункциональный редактор кода. Установите его из Официальный сайт VSCode.
  • PyCharm: Мощная Python IDE с расширенными функциями. Загрузить Community Edition здесь.
  • Google Colab: Облачная платформа, позволяющая писать и выполнять код Python в совместной среде. Доступ к ней через Google Colab.

Имея в своем арсенале Python, Requests и BeautifulSoup, а также выбранную вами IDE, вы хорошо подготовлены к началу пути создания своего Target Scraper. Давайте погрузимся в подход DIY с использованием этих инструментов.

Подход «сделай сам» с Python

Теперь, когда наша среда настроена, давайте засучим рукава и углубимся в самостоятельный подход к извлечению данных Target с помощью Python, Requests и BeautifulSoup. Выполните следующие шаги, чтобы разобраться в тонкостях веб-сайта Target и извлечь нужную информацию.

Использование библиотеки запросов

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

1
2
3
4
5
6
7
8
9
10
11
Импортировать Запросы
от urllib.parse Импортировать цену

URL = f'https://www.target.com/s?searchTerm=${цитировать("женские свитера")}'
ответ = запросы.get(url)

if ответ.status_code == 200:
html_content = ответ.текст
Распечатать(html_контент)
еще:
Распечатать(f'Ошибка: {response.status_code}')

Откройте ваш любимый текстовый редактор или IDE, скопируйте предоставленный код и сохраните его в файле Python. Например, назовите его target_scraper.py.

Запустите скрипт:

Откройте терминал или командную строку и перейдите в каталог, в котором вы сохранили target_scraper.py. Выполните скрипт с помощью следующей команды:

1
питон target_scraper.py

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

Проверьте целевой веб-сайт на наличие селекторов CSS

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

Использование BeautifulSoup для анализа HTML

Имея HTML-контент и идентифицированные селекторы CSS, давайте используем BeautifulSoup для разбора и навигации по структуре. Например, мы извлечем основные данные, такие как название продукта, рейтинг, количество отзывов, цену и URL-ссылку (URL-адрес страницы продукта) для каждого продукта, указанного на указанной целевой странице поиска. Полученные данные затем структурируются и могут быть сохранены для дальнейшего анализа или обработки. Давайте расширим наш предыдущий скрипт и извлечем эту информацию из 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
54
55
56
57
58
59
60
61
62
63
64
65
66
Импортировать Запросы
от urllib.parse Импортировать цену
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

защиту извлечь_рейтинг(элемент):
# Получить атрибут стиля
атрибут_стиля = элемент.получить('стиль')

# Анализируем значение ширины из атрибута стиля
if атрибут_стиля:
свойства_стиля = атрибут_стиля.разделить(';')
для подпирать in свойства_стиля:
проп = проп.strip()
if prop.начинается с('ширина:'):
width_value = prop[только('ширина:'):].полоска()
if width_value.endswith('%'):
рейтинг_процент = плавать(ширина_значение[:-1])
# Предположим, что рейтинг составляет 5
рейтинг_из_5 = (процент_рейтинга / 100) * 5
возвращают год(рейтинг_из_5, 2)

возвращают Ничто

защиту scrape_target_listing(URL):
ответ = запросы.get(url)

результаты_поиска = []

if ответ.status_code == 200:
html_content = ответ.текст
суп = КрасивыйСуп(html_content, 'html.парсер')

продукты = суп.выбрать('div[data-test="product-grid"] section[class^="styles__StyledRowWrapper"] div[class^="styles__StyledCardWrapper"]')

для ПРОДУКТЫ in продукты:
title_element = product.select_one('div[data-test="product-details"] a[data-test="product-title"]')
элемент_рейтинга = продукт.выберите_один('div[data-test="product-details"] div[data-ref="rating-mask"]')
review_count_element = product.select_one('div[data-test="product-details"] span[data-test="rating-count"]')
price_element = product.select_one('div[data-test="подробности-продукта"] span[data-test="текущая-цена"]')
product_url_element = product.select_one('div[data-test="product-details"] a[data-test="product-title"]')

данные_продукта = {
'Заголовок': title_element.text.strip() if title_element еще Ничто,
'Рейтинг': extract_rating(элемент_рейтинга) if рейтинг_элемент еще Ничто,
«Количество отзывов»: review_count_element.text.strip() if review_count_element еще Ничто,
'Цена': price_element.text.strip() if price_element еще Ничто,
«URL-адрес продукта»: 'https://www.target.com' + элемент_url_продукта['href'] if элемент_url_продукта еще Ничто
}

результаты_поиска.добавить(данные_продукта)

еще:
Распечатать(f'Ошибка: {response.status_code}')

возвращают результаты поиска

защиту main():
поисковый_термин = "женские свитера"
URL = f'https://www.target.com/s?searchTerm={цитата(поисковый_термин)}'
результаты = scrape_target_listing(url)

Распечатать(json.dumps(результаты, отступ=2))

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

Вы получите пустой вывод:

1
[]

Но почему? Это происходит потому, что Target использует JavaScript для динамической генерации результатов поиска на своей странице SERP. Когда вы отправляете HTTP-запрос на URL Target, в HTML-ответе отсутствуют значимые данные, что приводит к отсутствию ценной информации.

Этот подход DIY закладывает основу для скрапинга данных Target с помощью Python. Однако он имеет свои ограничения, включая потенциальные проблемы с обработкой динамического контента, надежностью и масштабируемостью.

Недостатки подхода «сделай сам»

Хотя подход DIY с использованием Python, Requests и BeautifulSoup обеспечивает простой вход в веб-скрапинг, важно знать о его неотъемлемых недостатках. При создании Target scraper с помощью подхода «сделай сам» возникают две важные проблемы:

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

Проблемы технического обслуживания с течением времени

  1. Изменения структуры HTML: Веб-сайты часто обновляются и переделываются, изменяя структуру HTML. Любые изменения в структуре целевого сайта могут нарушить работу вашего DIY-скрейпера, что потребует регулярных корректировок для поддержания функциональности.
  2. Изменения селектора CSS: Если Target изменяет селекторы CSS, связанные с данными, которые вы извлекаете, ваш скрипт может не обнаружить нужную информацию. Регулярный мониторинг и адаптация становятся необходимыми для противодействия этим изменениям.

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

Crawlbase Crawling API: Преодоление ограничений DIY

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

Как это упрощает процесс веб-скрапинга

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

Crawlbase Crawling API Особенности
  1. Адаптируемые настройки: Настройте запросы API с помощью таких параметров, как «format», «user_agent» и «page_wait», чтобы адаптировать процесс сбора данных к конкретным требованиям.
  2. Гибкий формат данных: Выбирайте между форматами ответов JSON и HTML, согласовывая API с различными потребностями разработчиков и упрощая извлечение данных.
  3. Обработка файлов cookie и заголовков: Получите доступ к важной информации, такой как файлы cookie и заголовки с целевого веб-сайта, с помощью «get_cookies» и «get_headers», которые необходимы для задач аутентификации или отслеживания.
  4. Динамическая обработка контента: Превосходно сканирует страницы с динамическим контентом, включая элементы JavaScript, используя такие параметры, как «page_wait» и «ajax_wait».
  5. Ротация IP-адресов: Повысьте анонимность, меняя IP-адреса, сводя к минимуму риск блокировки веб-сайтами и обеспечивая успешное сканирование веб-страниц.
  6. Географическая спецификация: Используйте параметр «страна» для указания географического местоположения, что бесценно для извлечения данных, специфичных для региона.
  7. Поддержка сети Tor: включите параметр «tor_network» для сканирования onion-сайтов через сеть Tor, что позволит надежно повысить конфиденциальность и доступ к содержимому даркнета.
  8. Снимок экрана: Сохраняйте визуальный контекст с помощью функции скриншотов, обеспечивая дополнительный уровень понимания собранных данных.
  9. Интеграция скраперов данных: Беспрепятственно используйте предопределенные средства извлечения данных, чтобы упростить извлечение определенной информации с веб-страниц, снижая сложность настраиваемой логики извлечения.
  10. Асинхронное сканирование: Поддержка асинхронного сканирования с параметром «async», предоставляющая разработчикам идентификатор запроса (RID) для легкого извлечения просканированных данных из облачного хранилища.
  11. Автопарсинг: Уменьшите нагрузку на постобработку, используя параметр автоанализа, который предоставляет проанализированную информацию в формате JSON, повышая эффективность извлечения и интерпретации данных.

Преимущества использования специализированного API для веб-скрапинга

The Crawlbase Crawling API имеет множество преимуществ, что делает его предпочтительным выбором для разработчиков, занимающихся задачами веб-скрапинга:

  1. Надежность: API разработан для обработки различных сценариев извлечения данных, обеспечивая надежность даже при работе с динамическими или сложными веб-страницами.
  2. Масштабируемость: CrawlbaseИнфраструктура позволяет эффективно масштабировать данные, выполнять более крупные проекты по парсингу и обеспечивать стабильную производительность.
  3. Кастомизация: Разработчики могут настраивать параметры парсинга, адаптируя API к уникальным требованиям своих целевых веб-сайтов.
  4. Эффективность: Оптимизация API для повышения скорости и производительности приводит к более быстрому извлечению данных, что позволяет быстрее получать информацию и принимать решения.
  5. Всесторонняя поддержка: Crawlbase предоставляет обширную документацию и поддержку, помогая разработчикам ориентироваться в функциях API и решать любые возникающие проблемы.

По мере перехода от подхода «сделай сам» к внедрению Crawlbase Crawling API обещает упростить процесс веб-скрейпинга и раскрыть спектр преимуществ, которые повышают эффективность и результативность усилий по скрейпингу Target. В следующем разделе мы проведем вас через практические шаги использования Crawlbase Crawling API для извлечения данных о продукте Target без особых усилий.

Целевой скребок с Crawlbase Crawling API

Теперь, когда мы изучили возможности Crawlbase Crawling API, давайте проведем вас через практические шаги по созданию Target Scraper с помощью этого мощного инструмента.

Crawlbase Регистрация и API-токен

Извлечение целевых данных с помощью Crawlbase Crawling API начинается с создания учетной записи на Crawlbase платформа. Давайте проведем вас через процесс настройки учетной записи для Crawlbase:

  1. Перейдите в Crawlbase: Откройте веб-браузер и перейдите на страницу Crawlbase веб-сайта Страница регистрации чтобы начать процесс регистрации.
  2. Предоставьте свои учетные данные: Введите свой адрес электронной почты и придумайте пароль для вашего Crawlbase аккаунт. Убедитесь, что вы правильно заполнили необходимые данные.
  3. Процесс проверки: После отправки данных в ваш почтовый ящик может прийти письмо с подтверждением. Найдите его и выполните шаги проверки, указанные в письме.
  4. Вход: После проверки вашей учетной записи вернитесь на страницу Crawlbase веб-сайт и войдите в систему, используя только что созданные вами учетные данные.
  5. Защитите свой API-токен: Доступ к Crawlbase Crawling API требуется токен API, и вы можете найти свой токен в вашем документация по счету.

Быстрая заметка: Crawlbase предоставляет два типа токенов — один, предназначенный для статических веб-сайтов, и другой, разработанный для динамических или JavaScript-ориентированных веб-сайтов. Поскольку мы сосредоточены на скрапинге Target, мы будем использовать токен JS. Бонус: Crawlbase предлагает первоначальную возможность сделать 1,000 бесплатных запросов на Crawling API, что делает его идеальным выбором для нашей экспедиции по веб-скрапингу.

Доступ к Crawling API Для пользователя Crawlbase Библиотека

Воспользуйтесь Crawlbase библиотеки на Python для беспрепятственного взаимодействия с Crawling API. Приведенный фрагмент кода демонстрирует, как инициализировать и использовать Crawling API через Crawlbase Библиотека Python.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
от база сканирования Импортировать CrawlingAPI
от urllib.parse Импортировать цену

API_ТОКЕН = 'ВАШ_ТОКЕН_JS_CRAWL'
crawling_api = CrawlingAPI({токен: API_ТОКЕН})

URL = f'https://www.target.com/s?searchTerm=${цитировать("женские свитера")}'

ответ = crawling_api.get(url)

if ответ["заголовки"]['статус_ПК'] == '200':
html_content = ответ['тело'].decode('utf-8')
Распечатать(html_контент)
еще:
Распечатать(f"Не удалось загрузить страницу. Crawlbase код статуса: {ответ["заголовки"]['статус_ПК']}")

Извлечение данных о целевом продукте без усилий

Посмотрите на график Crawlbase Crawling API, мы можем легко собрать информацию о продукте Target. Используя токен JS и настраивая параметры API, такие как ajax_wait и page_wait, мы можем управлять рендерингом JavaScript. Давайте улучшим наш скрипт DIY, включив Crawling API.

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
от база сканирования Импортировать CrawlingAPI
от urllib.parse Импортировать цену
от bs4 Импортировать КрасивыйСуп
Импортировать JSON

защиту извлечь_рейтинг(элемент):
# ... (без изменений)

защиту scrape_target_listing(API, URL-адрес):
ответ = api.get(url, {'ajax_wait': 'правда', 'page_wait': 5000 })

результаты_поиска = []

if ответ["заголовки"]['статус_ПК'] == '200':
html_content = ответ['тело'].decode('utf-8')
суп = КрасивыйСуп(html_content, 'html.парсер')

продукты = суп.выбрать('div[data-test="product-grid"] section[class^="styles__StyledRowWrapper"] div[class^="styles__StyledCardWrapper"]')

для ПРОДУКТЫ in продукты:
title_element = product.select_one('div[data-test="product-details"] a[data-test="product-title"]')
элемент_рейтинга = продукт.выберите_один('div[data-test="product-details"] div[data-ref="rating-mask"]')
review_count_element = product.select_one('div[data-test="product-details"] span[data-test="rating-count"]')
price_element = product.select_one('div[data-test="подробности-продукта"] span[data-test="текущая-цена"]')
product_url_element = product.select_one('div[data-test="product-details"] a[data-test="product-title"]')

данные_продукта = {
'Заголовок': title_element.text.strip() if title_element еще Ничто,
'Рейтинг': extract_rating(элемент_рейтинга) if рейтинг_элемент еще Ничто,
«Количество отзывов»: review_count_element.text.strip() if review_count_element еще Ничто,
'Цена': price_element.text.strip() if price_element еще Ничто,
«URL-адрес продукта»: 'https://www.target.com' + элемент_url_продукта['href'] if элемент_url_продукта еще Ничто
}

результаты_поиска.добавить(данные_продукта)

еще:
Распечатать(f'Ошибка: {ответ["заголовки"]["статус_ПК"]}')

возвращают результаты поиска

защиту main():
API_ТОКЕН = 'ВАШ_ТОКЕН_JS_CRAWL'
crawling_api = CrawlingAPI({токен: API_ТОКЕН})

поисковый_термин = "женские свитера"
URL = f'https://www.target.com/s?searchTerm={цитата(поисковый_термин)}'
результаты = scrape_target_listing(crawling_api, url)

Распечатать(json.dumps(результаты, ensure_ascii=Ложь, отступ=2))

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

Результат выборки:

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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
[
{
"Заголовок": «Женский свитер Style Republic из 100% чистого кашемира с круглым вырезом»,
"Рейтинг": нуль,
«Количество отзывов»: нуль,
"Цена": "99.00 $",
"URL-адрес продукта": "https://www.target.com/p/style-republic-100-pure-cashmere-crew-neck-women-s-sweater/-/A-90570284?preselect=90570311#lnk=sametab"
},
{
"Заголовок": «Женский свитер Style Republic из 100% чистого кашемира с V-образным вырезом»,
"Рейтинг": нуль,
«Количество отзывов»: нуль,
"Цена": "99.00 $",
"URL-адрес продукта": "https://www.target.com/p/style-republic-100-pure-cashmere-v-neck-women-s-sweater/-/A-90571072?preselect=90571114#lnk=sametab"
},
{
"Заголовок": «Женский тонкий свитер с круглым вырезом — A New Day™»,
"Рейтинг": 3.9,
«Количество отзывов»: "587",
"Цена": "20.00 $",
"URL-адрес продукта": "https://www.target.com/p/women-s-fine-gauge-crewneck-sweater-a-new-day/-/A-88228365?preselect=88228183#lnk=sametab"
},
{
"Заголовок": «Женский свитер с круглым вырезом из кашемира — Universal Thread™»,
"Рейтинг": 4.2,
«Количество отзывов»: "746",
"Цена": "$20.00 - $25.00",
"URL-адрес продукта": "https://www.target.com/p/women-s-crew-neck-cashmere-like-pullover-sweater-universal-thread/-/A-88062926?preselect=87817915#lnk=sametab"
},
{
"Заголовок": «Женский свитер с круглым вырезом и графическим принтом — A New Day™»,
"Рейтинг": 4.6,
«Количество отзывов»: "469",
"Цена": "21.25 $",
"URL-адрес продукта": "https://www.target.com/p/women-s-crewneck-graphic-pullover-sweater-a-new-day/-/A-89130911?preselect=88826973#lnk=sametab"
},
{
"Заголовок": «Женский тонкий свитер с V-образным вырезом — A New Day™»,
"Рейтинг": 3.9,
«Количество отзывов»: "419",
"Цена": "20.00 $",
"URL-адрес продукта": "https://www.target.com/p/women-s-fine-gauge-v-neck-sweater-a-new-day/-/A-88228797?preselect=88749045#lnk=sametab"
},
{
"Заголовок": «Agnes Orinda женские кардиганы больших размеров с длинным открытым передом в полоску»,
"Рейтинг": 1.0,
«Количество отзывов»: "1",
"Цена": "33.99 $",
"URL-адрес продукта": "https://www.target.com/p/agnes-orinda-women-s-plus-size-long-open-front-striped-sweater-knit-cardigans/-/A-87334185?preselect=88786783#lnk=sametab"
},
{
"Заголовок": «Женские свитера Agnes Orinda Plus Size Knit Deep V Neck Wrap Curvy Pullover»,
"Рейтинг": нуль,
«Количество отзывов»: нуль,
"Цена": "$36.69 - $52.49",
"URL-адрес продукта": "https://www.target.com/p/agnes-orinda-women-s-plus-size-knit-deep-v-neck-wrap-curvy-pullover-sweaters/-/A-89666687?preselect=89666694#lnk=sametab"
},
{
"Заголовок": "Легкий повседневный кардиган Agnes Orinda для женщин больших размеров с открытым передом и рукавами 3/4 в швейцарский горошек",
"Рейтинг": нуль,
«Количество отзывов»: нуль,
"Цена": "29.99 $",
"URL-адрес продукта": "https://www.target.com/p/agnes-orinda-women-s-plus-size-open-front-3-4-sleeve-swiss-dots-lightweight-casual-cardigan/-/A-90521798?preselect=90521806#lnk=sametab"
},
{
"Заголовок": «Женский весенний кардиган-свитер - A New Day™»,
"Рейтинг": нуль,
«Количество отзывов»: нуль,
"Цена": "28.00 $",
"URL-адрес продукта": "https://www.target.com/p/women-s-spring-cardigan-sweater-a-new-day/-/A-89531651?preselect=89531635#lnk=sametab"
},
{
"Заголовок": «Женский весенний свитер-пуловер - A New Day™»,
"Рейтинг": 5.0,
«Количество отзывов»: "3",
"Цена": "25.00 $",
"URL-адрес продукта": "https://www.target.com/p/women-s-spring-pullover-sweater-a-new-day/-/A-89528449?preselect=89528429#lnk=sametab"
},
{
"Заголовок": «Женский кардиган в рубчик — Universal Thread™»,
"Рейтинг": 4.3,
«Количество отзывов»: "11",
"Цена": "25.00 $",
"URL-адрес продукта": "https://www.target.com/p/women-s-rib-knit-cardigan-universal-thread/-/A-89436873?preselect=89229541#lnk=sametab"
},
....... более
]

Обработка нумерации страниц

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

Целевое использование веб-сайта &Nao параметр в URL для обработки пагинации. Он указывает начальную точку для отображения результатов на каждой странице. Например, &Nao=1 означает первый набор из 24 результатов, и &Nao=24 указывает на следующий набор. Этот параметр позволяет нам систематически собирать данные по разным страницам и создавать комплексный набор данных для анализа.

Давайте улучшим наш существующий скрипт, чтобы он мог легко обрабатывать пагинацию.

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
66
от база сканирования Импортировать CrawlingAPI
от urllib.parse Импортировать цену
от bs4 Импортировать КрасивыйСуп

защиту извлечь_рейтинг(элемент):
# ... (без изменений)

защиту scrape_target_listing(API, базовый_url):
результаты_поиска = []

номер_страницы = 1
per_page = 24 # Количество продуктов на странице

в то время как Правда:
# Создать URL с текущим номером страницы
URL = f'{базовый_url}&Нао={(номер_страницы - 1) * на_страницу + 1}'

ответ = api.get(url, {'ajax_wait': 'правда', 'page_wait': 5000 })

if ответ["заголовки"]['статус_ПК'] == '200':
html_content = ответ['тело'].decode('utf-8')
суп = КрасивыйСуп(html_content, 'html.парсер')

продукты = суп.выбрать('div[data-test="product-grid"] section[class^="styles__StyledRowWrapper"] div[class^="styles__StyledCardWrapper"]')

для ПРОДУКТЫ in продукты:
title_element = product.select_one('div[data-test="product-details"] a[data-test="product-title"]')
элемент_рейтинга = продукт.выберите_один('div[data-test="product-details"] div[data-ref="rating-mask"]')
review_count_element = product.select_one('div[data-test="product-details"] span[data-test="rating-count"]')
price_element = product.select_one('div[data-test="подробности-продукта"] span[data-test="текущая-цена"]')
product_url_element = product.select_one('div[data-test="product-details"] a[data-test="product-title"]')

данные_продукта = {
'Заголовок': title_element.text.strip() if title_element еще Ничто,
'Рейтинг': extract_rating(элемент_рейтинга) if рейтинг_элемент еще Ничто,
«Количество отзывов»: review_count_element.text.strip() if review_count_element еще Ничто,
'Цена': price_element.text.strip() if price_element еще Ничто,
«URL-адрес продукта»: 'https://www.target.com' + элемент_url_продукта['href'] if элемент_url_продукта еще Ничто
}

результаты_поиска.добавить(данные_продукта)

номер_страницы += 1

# Разрыв цикла, если нет следующей страницы
if суп.выбрать('button[data-test="next"]:not([disabled]'):
перерыв

еще:
Распечатать(f'Ошибка: {ответ["заголовки"]["статус_ПК"]}')
перерыв # Разрыв цикла при ошибке

возвращают результаты поиска

защиту main():
API_ТОКЕН = 'ВАШ_ТОКЕН_JS_CRAWL'
crawling_api = CrawlingAPI({токен: API_ТОКЕН})

поисковый_термин = "женские свитера"
базовый_url = f'https://www.target.com/s?searchTerm={цитата(поисковый_термин)}'
результаты = scrape_target_listing(crawling_api, base_url)

# дальнейшая обработка данных о листинге извлеченных продуктов

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

Внимание: Crawlbase имеет множество встроенных скребков, которые вы можете использовать с нашими Crawling API. Узнайте больше о них в нашем документации. Мы также создаем индивидуальные решения на основе того, что вам нужно. Наша опытная команда может создать решение специально для вас. Таким образом, вам не придется беспокоиться о постоянном просмотре деталей веб-сайта и селекторов CSS. Crawlbase займемся этим за вас, чтобы вы могли сосредоточиться на своих целях. Свяжитесь с нами здесь.

Сравнение: «сделай сам» против Crawlbase Crawling API

Когда дело доходит до парсинга данных о продукте Target, выбор правильного метода может существенно повлиять на эффективность и успех ваших усилий по парсингу веб-страниц. Давайте сравним традиционный подход «сделай сам» (DIY) с Python, Requests и BeautifulSoup с упрощенным Crawlbase Crawling API.

Python DIY против Crawlbase Crawling API

Заключение

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

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

📜 Как скрейпить Amazon

📜 Как взломать Walmart

📜 Как скрейпить AliExpress

📜 Как скрейпить Flipkart

📜 Как скрейпить Etsy

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

FAQ

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

В2: С какими типичными проблемами приходится сталкиваться при веб-скрапинге?

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

В3: Почему стоит выбрать Crawlbase Crawling API для сравнения Target с методом «сделай сам»?

The Crawlbase Crawling API является предпочтительным выбором для парсинга Target из-за его оптимизированного процесса, адаптивности, эффективности и надежности. Он отлично справляется с обработкой динамического контента, поддерживает ротацию IP для сохранения анонимности и обеспечивает стабильную производительность даже в крупномасштабных проектах парсинга. Удобный дизайн API и комплексные функции делают его превосходным решением для метода DIY.

Q4: это Crawlbase Crawling API подходит для крупномасштабных проектов по скрапингу?

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