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

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

Содержание

  1. Преимущества веб-скрапинга для получения ценовой информации

  2. Как Crawlbase Помогает с ценовой разведкой

  3. Пошаговое руководство: создание ценового скрапера

  4. Решение проблем при сборе данных о ценах

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

Преимущества веб-скрапинга для получения ценовой информации

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

Давайте подробнее рассмотрим основные преимущества:

Мониторинг данных в реальном времени

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

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

Оптимизация вашей ценовой стратегии

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

Как Crawlbase Помогает с ценовой разведкой

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

Речь идет не только о найме экспертов для создания инструмента для вас. Разработчикам также необходимо найти подходящий инструмент для решения распространенных проблем скрапинга наиболее эффективным способом, и вот где Crawlbase pomaga.

Команда Crawling API

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

Основные преимущества сбора цен с помощью Crawlbase

  • Доступ к данным в реальном времени - Crawlbase не хранит и не архивирует никакие данные. Он предназначен для сканирования любых данных, которые в данный момент доступны на целевой веб-странице. Это гарантирует, что вы получаете только свежую и точную информацию всякий раз, когда отправляете запросы к API.
  • Обход обычных дорожных заграждений скрепера - Crawlbase решает распространенные проблемы веб-скрейпинга, такие как обнаружение ботов, CAPTCHA и ограничения скорости. API использует тысячи прокси, которые постоянно поддерживаются и работают на основе ИИ, чтобы гарантировать, что вы получите высокий процент успеха почти в 100% случаев. Он также обрабатывает рендеринг JavaScript, поэтому вам не нужно вручную настраивать headless-браузеры или пользовательские агенты в вашем коде.
  • Простая и масштабируемая интеграция – Вы можете вызвать API одной строкой кода. Вот как легко отправить ваш запрос API. Вы можете вставить этот вызов в любой язык программирования, который может делать запросы HTTP или HTTPS. Кроме того, Crawlbase предлагает библиотеки и SDK, к которым разработчики могут получить бесплатный доступ для упрощения интеграции при масштабировании.
  • Экономически эффективное решение - С Crawlbase предоставляет решения для самых сложных частей веб-скрейпинга, это может оказать большое влияние на общую стоимость вашего проекта. Минимальная оплата решения часто имеет больше смысла, чем трата большей части вашего бюджета на решение сложных проблем самостоятельно.
Изображение Crawlbase в ценообразовании

Пошаговое руководство: как создать ценовой скрапер

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

Выбор целевых веб-сайтов (Amazon и eBay)

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

В этом упражнении по кодированию мы сосредоточимся на следующих URL-адресах SERP в качестве наших целей:
Amazon
eBay

Настройте свое рабочее пространство

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

Настройте среду кодирования

  1. Установите Python 3 на твоем компьютере.
  2. Создайте корневой каталог в нашей файловой системе.
1
2
MkDir ценовая разведка
cd ценовая разведка
  1. В корневом каталоге создайте файл с именем requirements.txtи добавьте следующие записи:
1
2
3
4
Запросы
пластинчатый
price_parser
панд

Затем выполните:

1
python -m pip install -r требования.txt

Отправка запросов с использованием Crawlbase

Давайте начнем с создания скрапера для страницы результатов поиска Amazon. В корневом каталоге вашего проекта создайте файл с именем amazon_serp_scraper.py, и следуйте за нами.

Добавьте операторы импорта в свой скрипт.

1
2
3
Импортировать Запросы
Импортировать urllib.parse
от запросы.исключения Импортировать ЗапросИсключения

Функция Add выполняет поиск товаров на Amazon с использованием заданного запроса с дополнительными параметрами для кода страны и домена верхнего уровня (например, .com или .co.uk) и возвращает список словарей товаров.

1
защиту получить_продукты_из_amazon(запрос: ул, страна: ул = Ничто, домен_верхнего_уровня: ул = 'ком') -> список[ДИКТ]:

Настраивает ваш API-токен и Crawlbase конечная точка для отправки запроса.

1
2
API_ТОКЕН = " "
API_ENDPOINT = "https://api.crawlbase.com/"

Создайте параметры для запроса GET, закодировав поисковый запрос для URL-адреса Amazon и указав Amazon SERP-скребок вместе с необязательным параметром страны.

1
2
3
4
5
6
параметры = {
"токен": API_ТОКЕН,
"URL": f"https://www.amazon.{top_level_domain}/с?к={urllib.parse.quote_plus(запрос)}",
"скребок": "amazon-serp",
"страна": страна
}

Отправьте запрос на Crawling API, затем проанализируйте и верните данные о продукте.

1
2
3
4
5
ответ = запросы.получить(API_ENDPOINT, параметры=параметры)
ответ.raise_for_status()

результат = ответ.json()
возвращают результат['тело']['продукты']

Чтобы выполнить программу, вставьте следующий фрагмент кода в конец скрипта:

1
2
3
4
5
6
7
if __имя__ == "__основной__":

Импортировать JSON

продукты = получить_продукты_из_амазонки("Apple iPhone 15 Pro Max 256 ГБ", страна="НАС", домен_верхнего_уровня="co.uk")
pretty_json = json.dumps(products, indent=2)
Распечатать(pretty_json)

Вы можете изменить значения в вызове функции в соответствии с вашими потребностями. Например, замените «Apple iPhone 15 Pro Max 256 ГБ» с любым другим названием продукта, измените "НАС" на другой код страны или обновить «co.uk» на другой домен Amazon, например «ком» or "из".

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

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
Импортировать Запросы
Импортировать urllib.parse
от запросы.исключения Импортировать ЗапросИсключения

защиту получить_продукты_из_amazon(запрос: ул, страна: ул = Ничто, домен_верхнего_уровня: ул = 'ком') -> список[ДИКТ]:
API_ТОКЕН = " "
API_ENDPOINT = "https://api.crawlbase.com/"

параметры = {
"токен": API_ТОКЕН,
"URL": f"https://www.amazon.{top_level_domain}/с?к={urllib.parse.quote_plus(запрос)}",
"скребок": "amazon-serp",
"страна": страна
}

ответ = запросы.получить(API_ENDPOINT, параметры=параметры)
ответ.raise_for_status()

результат = ответ.json()

возвращают результат['тело']['продукты']

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

Импортировать JSON

продукты = получить_продукты_из_амазонки("Apple iPhone 15 Pro Max 256 ГБ", страна="НАС", домен_верхнего_уровня="co.uk")
pretty_json = json.dumps(products, indent=2)
Распечатать(pretty_json)

Запустите скрипт из терминала с помощью следующей команды:

1
питон amazon_serp_scraper.py

После успешного выполнения вы увидите следующие необработанные данные:

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
[
{
"название": «Apple iPhone 16 Pro Max 256 ГБ: мобильный телефон 5G с Apple Intelligence — Desert Titanium + силиконовый чехол с MagSafe — черный»,
"цена": "\u00a31,138.00",
"rawPrice": 1138.0,
"валюта": "\u00a3",
"предложение": "",
"customerReview": «4.4 из 5 звезд»,
"customerReviewCount": "367",
"shippingMessage": "",
"асин": "B0DGTJ6Y1S",
"изображение": "https://m.media-amazon.com/images/I/61EpQCNARNL._AC_UY218_.jpg",
"URL": "https://www.amazon.co.uk/Apple-iPhone-Pro-Max-256GB/dp/B0DGTJ6Y1S/ref=sr_1_1?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748790249&sr=8-1",
"isPrime": ложный,
"спонсируемая реклама": ложный,
"couponInfo": "",
"badgesInfo": [],
"купилИнформация": ""
},
// Примечание: некоторые результаты были опущены для краткости.
{
"название": "Apple iPhone 11 Pro Max, 256 ГБ, темно-зеленый (обновленный)",
"цена": "\u00a3264.00",
"rawPrice": 264.0,
"валюта": "\u00a3",
"предложение": "",
"customerReview": «4.1 из 5 звезд»,
"customerReviewCount": "258",
"shippingMessage": "",
"асин": "B082BGTHP6",
"изображение": "https://m.media-amazon.com/images/I/71g5LVVdbaL._AC_UY218_.jpg",
"URL": "https://www.amazon.co.uk/Apple-iPhone-256GB-Midnight-Renewed/dp/B082BGTHP6/ref=sr_1_16?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748790249&sr=8-16",
"isPrime": ложный,
"спонсируемая реклама": ложный,
"couponInfo": "",
"badgesInfo": [],
"купилИнформация": ""
}
]

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

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
Импортировать Запросы
Импортировать urllib.parse
от запросы.исключения Импортировать ЗапросИсключения

защиту получить_продукты_с_ebay(запрос: ул, страна: ул = Ничто, домен_верхнего_уровня: ул = 'ком') -> список[ДИКТ]:
API_ТОКЕН = " "
API_ENDPOINT = "https://api.crawlbase.com/"

параметры = {
"токен": API_ТОКЕН,
"URL": f"https://www.ebay.{top_level_domain}/sch/i.html?_nkw={urllib.parse.quote_plus(запрос)}",
"скребок": "ebay-serp",
"страна": страна
}

ответ = запросы.получить(API_ENDPOINT, параметры=параметры)
ответ.raise_for_status()

результат = ответ.json()

возвращают результат['тело']['продукты']

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

Импортировать JSON

продукты = получить_продукты_с_ebay("Apple iPhone 15 Pro Max 256 ГБ", страна="НАС", домен_верхнего_уровня="co.uk")
pretty_json = json.dumps(products, indent=2)
Распечатать(pretty_json)

После того, как вы запустите скрипт, выполнив команду python ebay_serp_scraper.py в вашем терминале вы должны увидеть необработанный вывод, как показано ниже:

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
[
{
"заглавие": "Новый списокiPhone 15 Pro Max - 256 ГБ Синий Титан",
"субтитры": ["Б/у"],
"цена": {
"текущий": {
"от": "\u00a3513.93",
«В»: "\u00a3513.93"
},
"trendingPrice": нуль,
"предыдущаяЦена": ""
},
"проданоДата": "",
"Конечная дата": "",
"bidsCount": 0,
"горячность": "",
"дополнительнаяГорячесть": [],
"Отзывы клиентов": {
"обзор": "",
«Рассчитывать»: 0,
"связь": ""
},
"shippingMessage": "Почтовые расходы не указаны",
"изображение": "https://i.ebayimg.com/images/g/cQkAAOSww3toOdUj/s-l500.webp",
"URL": "https://www.ebay.co.uk/itm/146617243528?_skw=Apple+iPhone+15+Pro+Max+256GB&itmmeta=01JWP0SV257V8N99DP0GB2B2FK&hash=item2223119788:g:cQkAAOSww3toOdUj&itmprp=enc%3AAQAKAAAA4FkggFvd1GGDu0w3yXCmi1e4U9NgN8cbPDciCpZxd4y9M7arS1PIV503raP8NGkFrAGVGTcTJ93CtRBBBR%2BVdNPFCvqlvQFqv0p54lMQYaGfzNm2BDkKB8pOYhDKGV44h10dcGqP8Txe9bOa2%2BxUU4c03zlQjb5BBp5tZ6gfqvtXuJtaf6xW09Np944o3hzvtrVoM%2Fv9BcdTnUznCeLvNxWNQB9IG4%2BYEFyqvvcZce%2FbSdKA4hmdFerIaeAjWlWEpu7%2F1ZZV9ElPz9yibQZ6YcvruBvpIS3YYlvAypHn6yp8%7Ctkp%3ABk9SR5yx58DlZQ",
"расположение": "Великобритания",
"время": {
"оставшееся время": "6д 23ч осталось",
"времяКонец": "(Вс, 08:00)"
},
"listingDate": "",
"topRatedSeller": ложный,
"спонсируемая реклама": ложный,
"sellerInfo": "давидавиллиамс1 (2,001) 100%"
},
// Примечание: некоторые результаты были опущены для краткости.
{
"заглавие": "Отличное состояние - Apple iPhone 15 Pro Max 256 ГБ, синий, титановый, 98% аккумулятора -1047-",
"субтитры": ["Б/у"],
"цена": {
"текущий": {
"от": "\u00a3709.00",
«В»: "\u00a3709.00"
},
"trendingPrice": нуль,
"предыдущаяЦена": ""
},
"проданоДата": "",
"Конечная дата": "",
"bidsCount": 0,
"горячность": "20 наблюдателей",
"дополнительнаяГорячесть": [],
"Отзывы клиентов": {
"обзор": "",
«Рассчитывать»: 19,
"связь": "https://www.ebay.co.uk/p/24062761146?iid=236096139018#UserReviews"
},
"shippingMessage": "Почтовые расходы не указаны",
"изображение": "https://i.ebayimg.com/images/g/xIEAAeSw-NhoILdt/s-l140.webp",
"URL": "https://www.ebay.co.uk/itm/236096139018?_skw=Apple+iPhone+15+Pro+Max+256GB&epid=24062761146&itmmeta=01JWP0SV29B7VZRTR5336M14WJ&hash=item36f86d2f0a:g:xIEAAeSw-NhoILdt&itmprp=enc%3AAQAKAAABAFkggFvd1GGDu0w3yXCmi1d4wiok8NH9ED6XupF4lEB05soO%2BX9YmeNcvnhAT2xl8%2BMR4mTSpPbdLrOdQTzvZweJCy9AbPRRp%2F3fEqBcyd%2B5KAg80QbLwBoSqH0%2BeYox7n1qscvQrlMrB71D%2FNgjlJfHccWLZ%2FGngbtsV5ccazqhwfxQdUKd0i%2BgDc6vXrrD%2F5SrwBFP5B7By2Vao286t0uJFGHFt28Hit8Si6T2mAYp5VdmEJN4YPv0xAlEwjmiPZ94WWHtYHGzBfZgdg9pRZHngDYjfm0iVEkcLab9c3G5xbhlMKPjRvjgC8DcoRUnHD%2FJSfIkRTLH0PzFBsjmyTw%3D%7Ctkp%3ABFBMpLHnwOVl",
"расположение": "Великобритания",
"время": {
"оставшееся время": "",
"времяКонец": ""
},
"listingDate": "",
"topRatedSeller": ложный,
"спонсируемая реклама": правда,
"sellerInfo": "2mselectronics (728) 100%"
}
]

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

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

Давайте создадим новый файл с именем structured_consolidated_data.py и вставьте следующий код:

1
2
3
4
5
6
7
8
9
10
11
12
13
от amazon_serp_scraper Импортировать получить_продукты_из_amazon
от ebay_serp_scraper Импортировать получить_продукты_с_ebay

защиту получить_структурированные_консолидированные_данные(запрос: ул, страна: ул = Ничто, домен_верхнего_уровня: ул = 'ком') -> список[ДИКТ]:
продукты = []

amazon_data = get_products_from_amazon(запрос, страна=страна, домен_верхнего_уровня=домен_верхнего_уровня)
продукты.расширить([{"продукт": элемент['Name'], "цена": элемент['цена'], "URL": элемент['URL-адрес'], "источник": «Амазонка»} для пункт in amazon_data])

ebay_data = get_products_from_ebay(запрос, страна=страна, домен_верхнего_уровня=домен_верхнего_уровня)
продукты.расширить([{"продукт": элемент['заглавие'], "цена": элемент['цена']['текущий'][«До»].полоска(), "URL": элемент['URL-адрес'], "источник": "Ебэй"} для пункт in ebay_data])

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

Этот скрипт извлекает соответствующие данные о товарах из Amazon и eBay из Crawlbase сборщики данных. Он извлекает и объединяет ключевые данные, такие как источник, продукт, цена и URL-адрес, из каждого результата поиска в единый, простой в использовании список.

Вот полный код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
от amazon_serp_scraper Импортировать получить_продукты_из_amazon
от ebay_serp_scraper Импортировать получить_продукты_с_ebay

защиту получить_структурированные_консолидированные_данные(запрос: ул, страна: ул = Ничто, домен_верхнего_уровня: ул = 'ком') -> список[ДИКТ]:
продукты = []

amazon_data = get_products_from_amazon(запрос, страна=страна, домен_верхнего_уровня=домен_верхнего_уровня)
продукты.расширить([{"продукт": элемент['Name'], "цена": элемент['цена'], "URL": элемент['URL-адрес'], "источник": «Амазонка»} для пункт in amazon_data])

ebay_data = get_products_from_ebay(запрос, страна=страна, домен_верхнего_уровня=домен_верхнего_уровня)
продукты.расширить([{"продукт": элемент['заглавие'], "цена": элемент['цена']['текущий'][«До»].полоска(), "URL": элемент['URL-адрес'], "источник": "Ебэй"} для пункт in ebay_data])

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

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

Импортировать JSON

продукты = получить_структурированные_консолидированные_данные("Apple iPhone 15 Pro Max 256 ГБ", страна="НАС", домен_верхнего_уровня="co.uk")

pretty_json = json.dumps(products, indent=2)
Распечатать(pretty_json)

Запустите скрипт из терминала с помощью следующей команды:

1
python Structured_consolidated_data.py

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[
{
"продукт": «Apple iPhone 16 Pro Max 256 ГБ: мобильный телефон 5G с Apple Intelligence — Desert Titanium + силиконовый чехол с MagSafe — черный»,
"цена": "\u00a31,138.00",
"URL": "https://www.amazon.co.uk/Apple-iPhone-Pro-Max-256GB/dp/B0DGTJ6Y1S/ref=sr_1_1?dib=eyJ2IjoiMSJ9.ZChvrJybm7TlnZ2-2tQPcAJhiEM1rKrU7CkKwkwiDWAnDvRZyGd490ktAc-ukHTMrhCNjGZN-mUv_pB9jpM_b-kakh857EvjHVDsbaPlnqdaWdgP8h8JlYlqZZnnW7Y8aaJ_8IdO3jTMYnwEljkT641W-0jpmOwTktsR4YGToL3KgkE6J14jT_5xU3EZNFkl_L1IYUL72a1mwtfhDapB17WcNOKS6lxZeGSha2Sw1BA.ZYtrbxfYI-d4vIcsxiU9hG5ahBmcc5rtSNtz9VB-nc0&dib_tag=se&keywords=Apple+iPhone+15+Pro+Max+256GB&qid=1748791075&sr=8-1",
"источник": «Амазонка»
},
// Примечание: некоторые результаты были опущены для краткости.
{
"продукт": «Apple iPhone 15 Pro Max (256 ГБ) — Белый титан — Хорошее состояние»,
"цена": "\u00a3679.99",
"URL": "https://www.ebay.co.uk/itm/205475768012?_skw=Apple+iPhone+15+Pro+Max+256GB&itmmeta=01JWP14FHS44GRVT9KYP8AFKEW&hash=item2fd74f66cc:g:QkcAAOSwLKRoHd86&itmprp=enc%3AAQAKAAABAFkggFvd1GGDu0w3yXCmi1enej%2BIHaZBwUjnCYNkoIrYanJLRykGLG546KgFE4C%2BH%2FGVT3ptDyAFH87uYJ2y6Ih4qylSr70KgmTvf7QzxWJJb8UIuLl9GWlI4h4QLVbnS26iLFU08zLSz8kbcbyI5kILO9IRzzTpKec0Cxb4G8ujEojvnrdM8G3oP5ud4QwSccYRK7L8PnDvS7qECHgMXmshCmZh749EOMqeDYRFSCqmPYQ6etMUr0y38Wag%2BT%2BLOIkx8XxR3fTC4FbbMPGGUDdNpG1jLJ3e%2F6X9tZuQuDp4lprfyjTKWD564verk%2FxhORgHzaHvDhmmEE121dibsOU%3D%7Ctkp%3ABFBMgvmRweVl",
"источник": "Ебэй"
}
]

Используйте собранные данные

Теперь, когда мы успешно проанализировали соответствующие данные для наших нужд, мы можем начать применять их для базовой ценовой разведки. Например, мы можем написать скрипт для расчета и отображения средней цены «Apple iPhone 15 Pro Max 256 ГБ» выставьте цену на Amazon и сравните ее со средней ценой на eBay.

Создайте новый файл с именем market_average_price.py и вставьте следующий код:

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
Импортировать панд as pd
от price_parser Импортировать Цена
от структурированные_консолидированные_данные Импортировать получить_структурированные_консолидированные_данные

продукты = получить_структурированные_консолидированные_данные("Apple iPhone 15 Pro Max 256 ГБ", страна="НАС", домен_верхнего_уровня="co.uk")
продукты_с_ценами = фильтр(лямбда продукт: (продукт["цена"] is не Ничто и продукт["цена"].strip() != ''), продукты)
санированные_продукты = [продукт | {"цена": плавать(Цена.изстроки(продукт["цена"]).количество) } для ПРОДУКТЫ in продукты_с_ценами]

данные = список(дезинфицированные_продукты)
df = pd.DataFrame (данные)

# Проверьте типы данных и изучите исходный столбец
iphone_mask = df['продукт'].ул.содержит(«iPhone», , признали=Ложь, на=Ложь)

# Рассчитать средние цены на модели iPhone по источнику
iphone_df = дф[дф['продукт'].ул.содержит(«iPhone», , признали=Ложь, на=Ложь)]

# Группировать по источнику и рассчитывать средние цены
avg_prices = iphone_df.groupby('источник')['цена'].agg(['иметь в виду', 'считать']).круглые(2)
avg_prices.columns = [«Средняя цена (£)», «Количество продуктов»]

Распечатать("\n\nСредние цены на iPhone по источникам:")
Распечатать(средние_цены)

# Рассчитайте разницу
amazon_avg = avg_prices.loc[«Амазонка», «Средняя цена (£)»]
ebay_avg = avg_prices.loc['Ебэй', «Средняя цена (£)»]
разница = amazon_avg - ebay_avg

Распечатать("\n\nСравнение цен:")
Распечатать(f"Средняя цена на Amazon: £{amazon_avg}")
Распечатать(f"eBay в среднем: £{ebay_avg}")
Распечатать(f"Разница: £{разница:.2f} (Amazon - это {'выше' if разница > 0 еще 'ниже'} чем eBay)\n\n")

Чтобы запустить скрипт, выполните в терминале следующую команду:

1
python market_average_price.py

После успешного выполнения вы увидите примерно следующий вывод:

Вывод на консоль терминала для получения ценовой информации

Изучите полную информацию Кодовая база на GitHub.

Решение проблем с извлечением цен на Python

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

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

Хотя показатели успеха иногда могут варьироваться из-за непредсказуемости некоторых веб-сайтов, CrawlbaseПослужной список гарантирует процент успешных запросов более 95% в большинстве случаев. Кроме того, вы не платите за неудачные запросы, поэтому вы можете игнорировать их и повторно отправлять эти запросы в API.

Работа с содержимым, визуализированным с помощью JavaScript

Некоторые страницы требуют JavaScript для отображения необходимых вам данных. В этих случаях вы можете переключиться с обычного токена запроса на токен JavaScript. Это позволяет API использовать свою headless-браузерную инфраструктуру для правильного отображения содержимого JavaScript.

Если вы заметили отсутствие данных в ответе API, это верный признак того, что пора переключиться на токен JavaScript.

Обеспечение точности и свежести

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

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

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

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

В1: Что такое веб-скрапинг для определения цены?

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

В2: Что такое сбор данных о ценах?

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

В3: Какова роль веб-скрапинга в анализе цен конкурентов и исследовании рынка?

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