Tokopedia, одна из крупнейших платформ электронной коммерции в Индонезии, имеет более 90 миллионов активных пользователей и 350 миллионов посещений в месяц. Платформа предлагает широкий ассортимент товаров: от электроники, моды, продуктов питания до средств личной гигиены. Для предприятий и разработчиков сбор данных Tokopedia может дать вам представление о тенденциях в области продуктов, ценовой стратегии и предпочтениях клиентов.

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

Давайте начнем!

Содержание

  1. Зачем собирать данные Tokopedia?
  2. Ключевые данные для извлечения из Tokopedia
  3. Crawlbase Crawling API для соскобов Tokopedia
  • Crawlbase Библиотека Python
  1. Настройка среды Python
  • Установка Python и необходимых библиотек
  • Выбор IDE
  1. Очистка списков поиска в Токопедии
  • Проверка HTML на наличие селекторов CSS
  • Написание скребка списков поиска
  • Обработка нумерации страниц в Токопедии
  • Хранение данных в файле JSON
  • Полный код
  1. Парсинг страниц продуктов Токопедии
  • Проверка HTML на наличие селекторов CSS
  • Написание скрапера страницы продукта
  • Хранение данных в файле JSON
  • Полный код
  1. Заключение
  2. Часто задаваемые вопросы (FAQ)

Зачем собирать данные Tokopedia?

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

Существует множество причин, по которым стоит извлекать данные из Tokopedia:

Изображение, показывающее причины, по которым стоит чистить tokopedia
  1. Исследования рынка: Знание текущего спроса поможет вам с планированием запасов и маркетинга. Возможности всегда можно найти, глядя на общие тенденции.
  2. Сравнение цен: Можно скрафтить Tokopedia и получить несколько цен на продукты из разных категорий. Это позволит корректировать цены, чтобы оставаться конкурентоспособными.
  3. Анализ конкурентов: Сбор данных о продукции конкурентов поможет вам понять, как они себя позиционируют и в чем их слабые стороны.
  4. Информация о клиентах: Изучение обзоров и рейтингов продуктов поможет понять основные плюсы и минусы различных товаров с точки зрения покупателей.
  5. Доступность продукта: Следите за товарами, чтобы знать, когда запасы популярных товаров подходят к концу, и увеличивайте запасы, чтобы успокоить покупателей.

В следующем разделе мы увидим, что можно почерпнуть из Tokopedia.

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

При парсинге Tokopedia сосредоточьтесь на важных точках данных, и вы получите полезные идеи для вашего бизнеса или исследования. Вот точки данных, которые нужно захватить:

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

Концентрация на этих аспектах данных позволяет собирать полезные идеи из Tokopedia, которые могут помочь в уточнении или принятии лучших решений. Далее мы рассмотрим, как настроить среду Python для скрапинга.

Crawlbase Crawling API для соскобов Tokopedia

Crawlbase Crawling API делает парсинг Tokopedia быстрым и простым. Поскольку веб-сайт Tokopedia использует динамический контент, большая часть данных загружается через JavaScript, что затрудняет парсинг традиционными методами. Но Crawlbase Crawling API отображает страницы как настоящий браузер, чтобы вы могли получить доступ к данным.

Вот почему Crawlbase Crawling API подходит для парсинга Tokopedia:

  • Обрабатывает динамический контент: Crawlbase обрабатывает страницы с большим объемом JavaScript, поэтому все данные о продуктах полностью загружаются и готовы к извлечению.
  • Ротация IP: Чтобы избежать блокировки системами безопасности Tokopedia, Crawlbase автоматически меняет IP-адреса, позволяя вам заниматься парсингом, не беспокоясь об ограничениях скорости или банах.
  • Быстрая производительность: Crawlbase позволяет эффективно извлекать огромные объемы данных, экономя время и ресурсы.
  • Настраиваемый запросs: Вы можете изменить заголовки, файлы cookie и запросы управления в соответствии со своими потребностями.

С этими особенностями, Crawlbase Crawling API делает парсинг Tokopedia проще и эффективнее.

Crawlbase Библиотека Python

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

Вот пример функции для отправки запроса Crawlbase Crawling API:

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

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })

защиту make_crawlbase_request(URL):
ответ = crawling_api.get(url)

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

Внимание: Crawlbase предоставляет два типа токенов. Нормальный токен для статических сайтов. Токен JavaScript (JS) для динамического или отображаемого в браузере контента, необходимого для парсинга Tokopedia. Crawlbase предлагает 1,000 бесплатных запросов, чтобы помочь вам начать, и вы можете зарегистрироваться без кредитной карты. Для получения более подробной информации см. Crawlbase Crawling API документации.

В следующем разделе мы узнаем, как настроить среду Python для сбора данных Tokopedia.

Настройка среды Python

Чтобы начать скрейпинг Tokopedia, вам нужно настроить среду Python. Выполните следующие шаги, чтобы начать:

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

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

1
pip установить crawlbase beautifulsoup4
  • Crawlbase: Для взаимодействия с Crawlbase Crawling API для обработки динамического контента.
  • КрасивыйСуп: Для анализа и извлечения данных из HTML.

Эти инструменты необходимы для эффективного извлечения данных из Tokopedia.

Выбор IDE

Выберите IDE для бесперебойной разработки:

  • Visual Studio Code: Легкий и часто используемый.
  • PyCharm: Полнофункциональная IDE с мощными возможностями Python.
  • Jupyter Notebook: Идеально подходит для интерактивного кодирования и тестирования.

После настройки среды вы можете начать парсинг Tokopedia. Далее мы рассмотрим, как создать парсер Tokopedia SERP.

Очистка списков поиска в Токопедии

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

Проверка структуры HTML

Сначала вам нужно проверить HTML страницы результатов поиска Tokopedia, с которой вы хотите извлечь листинги продуктов. В этом примере мы будем извлекать листинги гарнитур со следующего URL:

1
https://www.tokopedia.com/search?q=headset

Откройте инструменты разработчика в браузере и перейдите по этому URL-адресу.

Скриншот HTML-структуры поисковых списков Tokopedia

Вот некоторые ключевые факторы, на которые следует обратить внимание:

  • Название продукта: Найдено в <span> тег с классом OWkG6oHwAppMn1hIBsC3pQ== который содержит название продукта.
  • Цена: В <div> тег с классом ELhJqP-Bfiud3i5eBR8NWg== отображающий цену товара.
  • Название магазина: Найдено в <span> тег с классом X6c-fdwuofj6zGvLKVUaNQ==.
  • Ссылка на продукт: Ссылка на страницу продукта найдена в <a> тег с классом Nq8NlC5Hk9KgVBJzMYBUsg==, доступный через href атрибутов.

Написание скребка списков поиска

Мы напишем функцию, которая делает запрос к Crawlbase Crawling API, извлекает HTML, а затем анализирует данные с помощью BeautifulSoup.

Вот код для извлечения результатов поиска:

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

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })

# Функция для получения HTML-контента из Crawlbase
защиту fetch_html(URL):
варианты = {
'ajax_wait': 'правда',
'page_wait': '5000'
}
ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
возвращают ответ['тело'].decode('utf-8')
еще:
Распечатать(f"Не удалось загрузить страницу. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

# Функция для анализа и извлечения данных о продукте
защиту parse_search_listings(HTML):
суп = КрасивыйСуп(html, 'html.парсер')
продукты = []

для ПРОДУКТЫ in суп.выбрать('div[data-testid="divSRPContentProducts"] div.css-5wh65g'):
имя = продукт.выберите_один('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=').текст.полоска() if продукт.выберите_один('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=') еще «Н/Д»
цена = продукт.выберите_один('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=').текст.полоска() if продукт.выберите_один('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=') еще «Н/Д»
магазин = продукт.выберите_один('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=').текст.полоска() if продукт.выберите_один('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=') еще «Н/Д»
product_url = product.select_one('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=')['href'] if продукт.выберите_один('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=') еще «Н/Д»

продукты.добавить({
'Name': имя,
'цена': цена,
'магазин': магазин,
'url_продукта': URL-адрес_продукта
})

возвращают продукты

Эта функция сначала извлекает HTML с помощью Crawlbase Crawling API а затем анализирует данные с помощью BeautifulSoup для извлечения информации о продукте.

Обработка нумерации страниц в Токопедии

Результаты поиска Tokopedia распределены по нескольким страницам. Чтобы вычистить все списки, нам нужно обработать пагинацию. Каждая последующая page можно получить доступ, добавив параметр страницы к URL-адресу, например ?page=2.

Вот как обрабатывать пагинацию:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Функция для извлечения нескольких страниц списков поиска
защиту scrape_multiple_pages(base_url, max_pages):
все_продукты = []

для страница in ассортимент(1, макс_страницы + 1):
paginated_url = f"{базовый_url}& page ={страница}"
html_content = fetch_html(paginated_url)

if html_контент:
продукты = parse_search_listings(html_content)
все_продукты.расширить(продукты)
еще:
перерыв

возвращают все_продукты

Эта функция просматривает страницы результатов поиска, извлекает списки продуктов с каждой страницы и объединяет результаты.

Хранение данных в файле JSON

После скрапинга данных вы можете сохранить их в файле JSON для легкого доступа и использования в будущем. Вот как это можно сделать:

1
2
3
4
5
# Функция сохранения данных в файл JSON
защиту сохранить_в_json(данные, имя файла='tokopedia_search_results.json'):
с открытый(имя файла, 'w') as json_файл:
json.dump(данные, json_file, отступ=4)
Распечатать(f"Данные сохранены в {имя файла}")

Полный пример кода

Ниже представлен полный код для извлечения результатов поиска Tokopedia для гарнитур, включая разбиение на страницы и сохранение данных в файл JSON:

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

# Инициализация Crawlbase API с вашим токеном доступа
crawling_api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })

защиту fetch_html(URL):
варианты = {
'ajax_wait': 'правда',
'page_wait': '5000'
}
ответ = crawling_api.get(url, параметры)
if ответ["заголовки"]['статус_ПК'] == '200':
возвращают ответ['тело'].decode('utf-8')
еще:
Распечатать(f"Не удалось загрузить страницу. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

защиту parse_search_listings(HTML):
суп = КрасивыйСуп(html, 'html.парсер')
продукты = []

для ПРОДУКТЫ in суп.выбрать('div[data-testid="divSRPContentProducts"] div.css-5wh65g'):
имя = продукт.выберите_один('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=').текст.полоска() if продукт.выберите_один('span.OWkG6oHwAppMn1hIBsC3pQ\\=\\=') еще «Н/Д»
цена = продукт.выберите_один('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=').текст.полоска() if продукт.выберите_один('div.ELhJqP-Bfiud3i5eBR8NWg\\=\\=') еще «Н/Д»
магазин = продукт.выберите_один('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=').текст.полоска() if продукт.выберите_один('span.X6c-fdwuofj6zGvLKVUaNQ\\=\\=') еще «Н/Д»
product_url = product.select_one('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=')['href'] if продукт.выберите_один('a.Nq8NlC5Hk9KgVBJzMYBUsg\\=\\=') еще «Н/Д»

продукты.добавить({
'Name': имя,
'цена': цена,
'магазин': магазин,
'url_продукта': URL-адрес_продукта
})

возвращают продукты

защиту scrape_multiple_pages(base_url, max_pages):
все_продукты = []

для страница in ассортимент(1, макс_страницы + 1):
paginated_url = f"{базовый_url}& page ={страница}"
html_content = fetch_html(paginated_url)

if html_контент:
продукты = parse_search_listings(html_content)
все_продукты.расширить(продукты)
еще:
перерыв

возвращают все_продукты

защиту сохранить_в_json(данные, имя файла='tokopedia_search_results.json'):
с открытый(имя файла, 'w') as json_файл:
json.dump(данные, json_file, отступ=4)
Распечатать(f"Данные сохранены в {имя файла}")

# Извлечение данных из списков поиска Tokopedia
базовый_url = 'https://www.tokopedia.com/search?q=гарнитура'
макс_страницы = 5 # Отрегулируйте количество страниц, которые вы хотите очистить
search_results = scrape_multiple_pages(базовый_url, макс_страницы)

# Сохранение результатов в файл JSON
сохранить_в_json(результаты_поиска)

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

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
[
{
"название": "Игровая гарнитура Ipega PG-R008 для P4 /X1 series/N-Switch Lite/Mobile/ta",
"цена": "178.000 рупий",
"магазин": "ipegaofficial",
"url_продукта": "https://www.tokopedia.com/ipegaofficial/ipega-pg-r008-gaming-headset-for-p4-x1-series-n-switch-lite-mobile-ta?extParam=ivf%3Dfalse&src=topads"
},
{
"название": "Hippo Toraz Handsfree Earphone Stereo Sound - гарнитура, Путих",
"цена": "13.000 рупий",
"магазин": "ГиппоЦентр",
"url_продукта": "https://www.tokopedia.com/hippocenter88/hippo-toraz-handsfree-earphone-stereo-sound-headset-putih?extParam=ivf%3Dfalse&src=topads"
},
{
"название": "ГАРНИТУРА ОРИГИНАЛЬНАЯ COPOTAN VIVO OPPO XIAOMI REALMI JACK 3.5MM SUPERBASS - OPPO",
"цена": "5.250 рупий",
"магазин": "БЕНУААЦЕЛЛ",
"url_продукта": "https://www.tokopedia.com/bcbenuacell/headset-original-copotan-vivo-oppo-xiaomi-realmi-jack-3-5mm-superbass-oppo?extParam=ivf%3Dfalse&src=topads"
},
{
"название": "наушники bluetooth беспроводная гарнитура игровая полный бас",
"цена": "225.000 рупий",
"магазин": «Копи 7 Хуруф»,
"url_продукта": "https://www.tokopedia.com/kopi7huruf/earphone-bluetooth-wireless-headset-gaming-full-bass?extParam=ivf%3Dfalse&src=topads"
},
{
"название": "Наушники-вкладыши 4D Stereo Super Bass с микрофоном и разъемом для кабеля 3.5 мм. Гарнитура с кристально чистым звуком - Прямо",
"цена": "15.000 рупий188.000 рупий",
"магазин": "МАГАЗИН МОКУТ",
"url_продукта": "https://www.tokopedia.com/mocutestore/earphone-in-ear-4d-stereo-super-bass-dengan-mic-with-kabel-jack-3-5mm-headset-crystal-clear-sound-putih-97573?extParam=ivf%3Dtrue&src=topads"
},
.... более
]

В следующем разделе мы рассмотрим сбор данных со страниц отдельных продуктов на Tokopedia для получения подробной информации.

Парсинг страниц продуктов Токопедии

Теперь, когда мы скопировали списки поиска, давайте перейдем к скопированию информации о продукте с отдельных страниц продукта. В этом разделе мы скопируем название продукта, цену, название магазина, описание и URL изображения со страницы продукта Tokopedia.

Проверка HTML на наличие селекторов CSS

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

1
https://www.tokopedia.com/thebigboss/headset-bluetooth-tws-earphone-bluetooth-stereo-bass-tbb250-beige-8d839

Откройте инструменты разработчика в браузере и перейдите по этому URL-адресу.

Скриншот HTML-структуры страницы продукта Tokopedia

Вот на чем нам нужно сосредоточиться:

  • Продукт Имя: Найдено в <h1> тег с атрибутом data-testid="lblPDPDetailProductName".
  • Цена: Цена указана в <div> тег с атрибутом data-testid="lblPDPDetailProductPrice".
  • Название магазина: Название магазина находится внутри <a> тег с атрибутом data-testid="llbPDPFooterShopName".
  • Описание товара:: Расположен в <div> тег с атрибутом data-testid="lblPDPDescriptionProduk" который содержит подробную информацию о продукте.
  • URL-адрес изображения: Основное изображение продукта находится внутри <button> тег с атрибутом data-testid="PDPImageThumbnail", и src атрибут вложенного <img> тег (класс css-1c345mg) содержит ссылку на изображение.

Написание скрапера страницы продукта

Теперь, когда мы осмотрели страницу, мы можем начать писать скрапер. Ниже приведена функция Python, которая использует Crawlbase Crawling API для получения HTML и BeautifulSoup для анализа содержимого.

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

# Инициализация Crawlbase API с вашим токеном
crawling_api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })

защиту очистить_страницу_продукта(URL):
варианты = {
'ajax_wait': 'правда',
'page_wait': '5000'
}
ответ = crawling_api.get(url, параметры)

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

# Извлечение данных о продукте
данные_продукта = {}
данные_о_продукте['Name'] = суп.выберите_один('h1[data-testid="lblPDPDetailProductName"]').текст.полоска()
данные_о_продукте['цена'] = суп.выберите_один('div[data-testid="lblPDPDetailProductPrice"]').текст.полоска()
данные_о_продукте['имя_магазина'] = суп.выберите_один('a[data-testid="llbPDPFooterShopName"]').текст.полоска()
данные_о_продукте['описание'] = суп.выберите_один('div[data-testid="lblPDPDescriptionProduk"]').текст.полоска()
данные_о_продукте['images_url'] = [изображение['источник'] для IMG in суп.выбрать('button[data-testid="PDPImageThumbnail"] img.css-1c345mg')]

возвращают данные_о_продукте
еще:
Распечатать(f"Не удалось загрузить страницу. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

Хранение данных в файле JSON

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

1
2
3
4
защиту хранить_данные_в_json(данные, имя файла='tokopedia_product_data.json'):
с открытый(имя файла, 'w') as json_файл:
json.dump(данные, json_file, отступ=4)
Распечатать(f"Данные хранятся в {имя файла}")

Полный пример кода

Вот полный код, который считывает данные со страницы товара и сохраняет их в файле JSON.

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

# Инициализация Crawlbase API с вашим токеном
crawling_api = CrawlingAPI({ токен: 'ВАШ_ТОКЕН_БАЗЫ_КРАНА' })

# Функция для извлечения страницы продукта Tokopedia
защиту очистить_страницу_продукта(URL):
варианты = {
'ajax_wait': 'правда',
'page_wait': '5000'
}
ответ = crawling_api.get(url, параметры)

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

# Извлечение данных о продукте
данные_продукта = {}
данные_о_продукте['Name'] = суп.выберите_один('h1[data-testid="lblPDPDetailProductName"]').текст.полоска()
данные_о_продукте['цена'] = суп.выберите_один('div[data-testid="lblPDPDetailProductPrice"]').текст.полоска()
данные_о_продукте['имя_магазина'] = суп.выберите_один('a[data-testid="llbPDPFooterShopName"]').текст.полоска()
данные_о_продукте['описание'] = суп.выберите_один('div[data-testid="lblPDPDescriptionProduk"]').текст.полоска()
данные_о_продукте['images_url'] = [изображение['источник'] для IMG in суп.выбрать('button[data-testid="PDPImageThumbnail"] img.css-1c345mg')]

возвращают данные_о_продукте
еще:
Распечатать(f"Не удалось загрузить страницу. Код статуса: {ответ["заголовки"]['статус_ПК']}")
возвращают Ничто

# Функция для сохранения извлеченных данных в файле JSON
защиту хранить_данные_в_json(данные, имя файла='tokopedia_product_data.json'):
с открытый(имя файла, 'w') as json_файл:
json.dump(данные, json_file, отступ=4)
Распечатать(f"Данные хранятся в {имя файла}")

# Скрапинг страницы продукта и сохранение данных
URL = 'https://www.tokopedia.com/thebigboss/headset-bluetooth-tws-earphone-bluetooth-stereo-bass-tbb250-beige-8d839'
данные_продукта = очистить_страницу_продукта(url)

if данные_о_продукте:
store_data_in_json(данные_о_продукте)

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
"название": "гарнитура bluetooth tws наушники bluetooth стерео бас tbb250 - бежевый",
"цена": "299.000 рупий",
"имя_магазина": «Большой Босс 17»,
"описание": "1.Направленный объемный звук 6D. Технологические способы подключения, беспроводная гарнитура Bluetooth, включаемая в телефон, эффект 90 % при 2 % производительности, безопасная работа в режиме реального времени, а также в режиме реального времени. умум.3.Бука desain без наушниковDesain memakai gaya anting-anting берлари, менари, бермейн скейтборд, берсепеда, дан тантанган олахрага интенситас тинги лайння, кенияманан пемакаян чанка панджанг ян ньята, tidak ada perasaan memakai, dan tidak dapat; dibuang.4,5.Menggunakan bahan Silikon Lembut, bahannya sangatringan, dan berat masing-masing telinga hanya 75g, yang dapat mengurangi tekananpada telinga; dapat diregangkan hingga 00\u0, sehingga lebih nyaman dipakai4.Bluetooth 5.3Chip Bluetooth Genesis Baru dapat mengurangi penundaan mendengarkan musik dan menonton video. Стабильный контакт на расстоянии 10 метров, длинный контакт на расстоянии 1 шаг, установленный на расстоянии 5.Desain senduh cerdasIni dapat dioperasikan dengan satu tangan, dan centuhannya sensitif dan nyaman; Ганти лагу капан саджа, джаваб пангилан, ассистен пангилан, дан кендаликан с бебас6.Панггилан передам бисинг дуа арахмикрофон передам бисинг бааан дапат секара эффектив мемфильтр суара секитар селама пангилан, менгидентификаси суара манусиа секара акурат, дан мембуат сетиап перчакапан анда лебих джелас.7. IPx5 tahan air\ud83d\udca7Tingkat tahan air IPx5, efektif menahan keringat dan tetesan hujan kecil, jangan kawatir berkeringat atau hujan.8.Baterai tahan lama\ud83d\udd0b Наушники Baterai juga dapat digunakan selama 5 jam, dan waktu siaga хинга 120 джем, участники Anda waktu mendengarkan yang lebih lamaDaftar aksesori наушники* Наушники x 2 (кири и канан)* Kotak pengisian daya* Кабель pengisi daya USB-C* Panduan Cepat & Garansi",
"images_url": [
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/3119dca0-2d66-45d7-b6a1-445d0782b15a.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/9d9ddcff-7f52-43cc-8271-c5e135de392b.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/d35975e6-222c-4264-b9f2-c2eacf988401.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/5aba89e3-a37a-4e3a-b1f8-429a68190817.jpg.webp?ect=4g",
"https://images.tokopedia.net/img/cache/100-square/VqbcmM/2024/7/28/c6c3bb2d-3215-4993-b908-95b309b29ddd.jpg.webp?ect=4g",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg",
"https://assets.tokopedia.net/assets-tokopedia-lite/v2/zeus/kratos/85cc883d.svg"
]
}

Этот полный пример показывает, как извлечь данные о продукте со страницы продукта Tokopedia и сохранить их в файл JSON. Он обрабатывает динамический контент, поэтому хорошо подходит для извлечения данных из страниц, отображаемых JavaScript.

Оптимизируйте сбор данных Tokopedia с помощью Crawlbase

Скрапинг Tokopedia может помочь вам получить данные о продуктах для исследования, сравнения цен или анализа рынка. С Crawlbase Crawling API, вы можете перемещаться по динамическому веб-сайту и быстро извлекать данные даже со страниц с большим объемом JavaScript.

В этом блоге мы рассмотрели, как настроить среду, найти селекторы CSS из HTML и написать код Python для извлечения списков продуктов и страниц продуктов из Tokopedia. С помощью метода, используемого в этом блоге, вы можете легко собирать полезную информацию, такую ​​как названия продуктов, цены, описания и изображения из Tokopedia, и хранить их в структурированном формате, например JSON.

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

📜 Как скрейпить Amazon
📜 Как взломать Walmart
📜 Как скрейпить AliExpress
📜 Как очистить Zalando
📜 Как соскребать Costco

Обратитесь к нашему поддержка Если у вас есть вопросы. Счастливого скрапинга.

Часто задаваемые вопросы (FAQ)

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

В. Почему мне следует использовать Crawlbase Crawling API для сбора данных с Токопедии?

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

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

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