Walmart предоставляет обширную коллекцию данных о продуктах на своем веб-сайте Walmart, который является ценным ресурсом для компаний, исследователей и маркетологов. Независимо от того, заходите ли вы на одну страницу продукта Walmart или перемещаетесь по нескольким страницам Walmart, сбор соответствующей информации может оказаться непростой задачей из-за строгих мер Walmart по борьбе со скрепингом.
В этой статье объясняется, как прокси Massive упрощают обход этих ограничений и позволяют собирать информацию о продуктах Walmart из определенных мест.
Давайте погрузимся в мир!
Типичные примеры использования данных о продуктах Walmart
Веб-сайт Walmart содержит ценную информацию, которую можно использовать для различных целей, в том числе:
- Исследование продуктов и рынка: Анализируйте данные со страницы каждого продукта Walmart, включая отзывы и рейтинги, чтобы понять предпочтения потребителей и рыночные тенденции.
- Анализ конкурентов: Получите представление о ценах и товарных стратегиях конкурентов
- Мониторинг и оптимизация цен: Отслеживайте цены в реальном времени, чтобы скорректировать ценовые стратегии и сохранить конкурентоспособность.
- Управление запасами: Контролируйте уровень запасов и доступность продукции для оптимизации операций с запасами и цепочкой поставок.
Зачем использовать прокси при очистке веб-страниц
Прокси играют решающую роль в очистке веб-страниц, выступая в качестве посредников между вашим парсером и целевым веб-сайтом. Они предлагают несколько ключевых преимуществ, в том числе:
- Как избежать запретов на использование IP: Прокси позволяют менять IP-адреса, что снижает риск обнаружения и блокировки веб-сайтом.
- Доступ к контенту с географическими ограничениями: Некоторый контент или продукты доступны только в определенных регионах. Прокси-серверы позволяют вам выглядеть так, как будто вы просматриваете страницу из другого места.
- Обход ограничений по тарифам: Веб-сайты часто накладывают ограничения на количество запросов с одного IP-адреса. Прокси-серверы помогают распределять запросы по нескольким IP-адресам, что позволяет избежать этих ограничений.
Понимание мер Walmart по борьбе со скрепингом
Извлечение данных из Walmart может быть сложной задачей из-за наличия нескольких средств защиты. Вот несколько распространенных проблем, с которыми вы можете столкнуться:
- Проблемы с CAPTCHA: Walmart использует капчи для блокировки ботов. Хотя людям довольно легко их решить, автоматическим скриптам их может быть сложно.
- Ограничение скорости: Walmart ограничивает количество запросов, которые вы можете сделать в течение короткого периода времени. Если вы превысите этот лимит, ваш доступ может быть заблокирован.
- Блокировка IP-адресов: Если Walmart обнаружит чрезмерную активность по очистке данных с одного IP-адреса, она может заблокировать этот IP-адрес.
- Изменение макета страницы: Walmart часто обновляет структуру своих веб-страниц. Эти изменения могут привести к поломке кода очистки, поэтому вам придется регулярно обновлять его.
- Динамический контент: Страница поиска Walmart и другие страницы Walmart используют JavaScript для динамической загрузки контента, что может усложнить очистку.
Например, я создал скрипт для сбора данных со страниц нескольких продуктов в Walmart. Однако мой парсер в конечном итоге был заблокирован системой обнаружения ботов Walmart, как вы можете видеть на изображении ниже.

Эта задача, в рамках которой мне нужно нажать и удерживать кнопку «Нажмите и удерживайте», чтобы убедиться в своей человечности, является распространенным механизмом CAPTCHA, который используется веб-сайтами для предотвращения доступа ботов к их контенту.
В этот момент мой парсер больше не мог получить доступ к данным, что было неприятно и отнимало много времени. Но не волнуйтесь — решение есть. Мы рассмотрим, как Массивные резидентные прокси может помочь вам собрать данные о продуктах Walmart.
Прокси-серверы для обработки данных в жилых помещениях и центрах обработки данных для очистки данных Walmart: что работает лучше всего
Я уже давно занимаюсь поиском Walmart, и выбор прокси-сервера имеет решающее значение. По моему опыту, резидентные прокси стоят дополнительных затрат. Они используют реальные IP-адреса, присвоенные домовладельцам реальными интернет-провайдерами, поэтому в системах Walmart вы выглядите как обычный покупатель, заходящий из дома. Да, это стоит дороже, но качество данных и бесперебойные сеансы очистки данных оправдывают себя.
Прокси-серверы для центров обработки данных заманчивы — они быстрее и дешевле, но системы защиты от ботов Walmart неплохо их обнаруживают.
Преимущества использования массивных прокси для парсинга Walmart
Массивные резидентные прокси предлагают несколько ключевых преимуществ:
- 🌐 Глобальный охват: Посещайте более 195 стран — целевые города, почтовые индексы или ASN
- 🔒 Анонимность: Миллионы вращающихся IP-адресов + настраиваемая ротация (за запрос или 1-60 минут)
- ⚡ Скорость и надежность: Коэффициент успеха 99,8%, время отклика <0,7 с и время безотказной работы 99,9%
- 💰 Бюджетно: Начните с 4,49 долларов США/ГБ с масштабируемыми планами
- ✅ Соответствует этическим нормам: Прокси, полностью соответствующие требованиям GDPR/CCPA, на 100% из этичных источников
- 🛠️ Поддержка: Через Slack, Skype, электронную почту или билеты
Начало работы с Massive
Если вы новичок в Massive, зарегистрируйте аккаунт. Выберите план, соответствующий вашим потребностям.
Примечание: Мы предлагаем Бесплатная пробная версия 2 ГБ для компаний. Для начала заполните эту форму. Если вам нужна большая пропускная способность, свяжитесь с нашим отделом продаж, и мы вам поможем.
После регистрации перейдите на Массивная панель управления для получения учетных данных прокси-сервера (имя пользователя и пароль).

Этапы настройки:
Посетите Быстрый старт раздел для настройки параметров прокси-сервера:
- Выберите предпочтительный протокол (HTTP, HTTPS или SOCKS5)
- Выберите между вращающиеся или липкие прокси
- Задайте настройки геотаргетинга (страна, штат, город или почтовый индекс)
После настройки вы получите готовую к использованию команду cURL для вашего конкретного варианта использования.

Дополнительные функции, такие как таргетинг на основе местоположения и фиксированные сеансы, см. в Обширная документация. В документации представлены пошаговые инструкции по максимально эффективному использованию прокси-серверов Massive Residential.
Благодаря этой настройке вы можете использовать Massive Proxies для сбора данных о продуктах Walmart из определенного региона.
Создание Walmart Scraper с использованием Python и массивных прокси
Хотя вы можете использовать API Walmart scraper, создание собственного решения с правильной конфигурацией пользовательского агента дает вам больший контроль над процессом очистки. Давайте рассмотрим, как создать парсер Python для данных о продуктах Walmart с использованием прокси-серверов Massive и Playwright. Playwright помогает автоматизировать действия браузера и обрабатывать динамический контент, например загружать больше продуктов по мере прокрутки.
Использование Массивный прокси, вы можете собирать данные Walmart из любого места, где работает Walmart, просто изменив настройки прокси-сервера. В этом уроке мы покажем очистку данных о продуктах в Вашингтон, США.
Мы извлечем следующие данные для каждого продукта Walmart: название продукта, рейтинг, количество отзывов, цена, предыдущая цена (если есть), информация о доставке и ссылка на продукт.

1. Настройте свою среду Python
Для начала убедитесь, что на вашем компьютере установлен Python. Затем установите программу Playwright и необходимые двоичные файлы для браузера:
pip install playwright
playwright install
2. Импортируйте необходимые библиотеки
Теперь давайте начнем писать сценарий. Вам необходимо импортировать следующие библиотеки:
асинхронный
для асинхронного программирования.случайных
для добавления случайных задержек.json
чтобы сохранить наши очищенные данные.асинхронный драматург
от Playwright для управления браузером и автоматизации очистки.
import asyncio
import random
import json
from playwright.async_api import async_playwright
3. Запустите браузер с массивными настройками прокси-сервера
Запустите браузер Chromium в режиме «без головы» с настройками прокси-сервера. Это позволяет обойти меры Walmart по борьбе со скрейпингом, используя Массивный прокси.
async with async_playwright() as p:
browser = await p.chromium.launch(
headless=True,
args=[
"--disable-blink-features=AutomationControlled",
"--disable-infobars",
"--disable-extensions",
"--disable-popup-blocking",
"--no-sandbox",
],
)
Затем настройте контекст браузера для маршрутизации трафика Массивный резидентные прокси:
context = await browser.new_context(
user_agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36",
locale="en-GB",
proxy={
"server": "https://network.joinmassive.com:65535",
"username": "MASSIVE_USERNAME-country-US-subdivision-WA",
"password": "MASSIVE_PASSWORD",
},
viewport={"width": 1920, "height": 1080},
)
Откройте новую страницу и перейдите к результатам поиска Walmart:
page = await context.new_page()
await page.goto(
"https://www.walmart.com/search?q=windows+laptops",
wait_until="domcontentloaded",
)
Этот код направит браузер на страницу результатов поиска Walmart по запросу «ноутбуки Windows».
4. Прокрутка и извлечение данных
Поскольку при прокрутке Walmart загружает больше товаров, мы смоделируем прокрутку, подобную человеческой, чтобы убедиться, что все продукты загружены:
async def scroll_and_extract(page):
previous_height = await page.evaluate("document.body.scrollHeight")
while True:
await page.evaluate("window.scrollBy(0, Math.random() * 100 + 300)")
await asyncio.sleep(random.uniform(1, 2))
new_height = await page.evaluate("document.body.scrollHeight")
if new_height == previous_height:
break
previous_height = new_height
5. Извлеките информацию о продукте
Теперь мы извлекаем такие сведения, как название продукта, цена и рейтинг, с помощью селекторов CSS. Вот как можно извлечь каждую часть информации:
A. Название продукта:

Фрагмент кода:
product_name = await product.query_selector('span[data-automation-id="product-title"]')
product_name = await product_name.inner_text() if product_name else "N/A"
B. Текущая цена:

Фрагмент кода:
price = await product.query_selector(
'div[data-automation-id="product-price"] div[aria-hidden="true"]'
)
price = await price.inner_text() if price else "N/A"
C. Прежняя цена:

Фрагмент кода:
previous_price = await product.query_selector("div.gray.strike")
previous_price = await previous_price.inner_text() if previous_price else "N/A"
D. Рейтинг продукта:

Фрагмент кода:
rating = await product.query_selector('span[data-testid="product-ratings"]')
rating = await rating.get_attribute("data-value") if rating else "N/A"
E. Количество отзывов:

Фрагмент кода:
num_reviews = await product.query_selector('span[data-testid="product-reviews"]')
num_reviews = await num_reviews.inner_text() if num_reviews else "N/A"
F. Информация о доставке:

Фрагмент кода:
shipping_info = await product.query_selector('div[data-automation-id="fulfillment-badge"]')
shipping_info = await shipping_info.inner_text() if shipping_info else "N/A"
Вот комбинированный код который возвращает всю информацию о каждом продукте.
async def extract_product_info(product):
title_selector = 'span[data-automation-id="product-title"]'
price_selector = 'div[data-automation-id="product-price"] div[aria-hidden="true"]'
previous_price_selector = "div.gray.strike"
rating_selector = 'span[data-testid="product-ratings"]'
reviews_selector = 'span[data-testid="product-reviews"]'
shipping_info_selector = 'div[data-automation-id="fulfillment-badge"]'
product_url_selector = 'a[href*="/ip/"]'
title = await product.query_selector(title_selector)
product_url_element = await product.query_selector(product_url_selector)
product_url = (
await product_url_element.get_attribute("href") if product_url_element else None
)
if product_url and "from=/search" in product_url:
current_price = await product.query_selector(price_selector)
previous_price = await product.query_selector(previous_price_selector)
rating = await product.query_selector(rating_selector)
num_reviews = await product.query_selector(reviews_selector)
shipping_info = await product.query_selector(shipping_info_selector)
return {
"title": await title.inner_text() if title else "N/A",
"product_url": f"https://www.walmart.com/{product_url}",
"current_price": (
await current_price.inner_text() if current_price else "N/A"
),
"previous_price": (
await previous_price.inner_text() if previous_price else "N/A"
),
"rating": await rating.get_attribute("data-value") if rating else "N/A",
"num_reviews": await num_reviews.inner_text() if num_reviews else "N/A",
"shipping_info": (
await shipping_info.inner_text() if shipping_info else "N/A"
),
}
return None
6. Очистите несколько страниц
Чтобы просмотреть несколько страниц, мы найдем кнопку «Следующая страница» и нажмем на каждую из них
async def scrape_walmart(page, current_page):
async def product_info_generator(current_page):
while True:
print(f"Scraping page {current_page}...")
await scroll_and_extract(page)
# Extract product information
product_elements = await page.query_selector_all(
'div[role="group"][data-item-id]'
)
for product in product_elements:
product_data = await extract_product_info(product)
if product_data:
yield product_data
# Check for the "Next Page" button
next_page_button = await page.query_selector('a[data-testid="NextPage"]')
if next_page_button:
await next_page_button.click()
current_page += 1
else:
break
return product_info_generator(current_page)
7. Сохраните данные в файле JSON
После извлечения всех данных сохраните их в файле JSON:
def save_data_to_json(data, filename):
with open(filename, "w", encoding="utf-8") as json_file:
json.dump(data, json_file, ensure_ascii=False, indent=4)
print(f"Product information saved to {filename}")
8. Запуск скребка
Вот основная функция запуска скребка Walmart:
async def main():
async with async_playwright() as p:
browser = await p.chromium.launch(headless=True)
page = await browser.new_page()
await page.goto(
"https://www.walmart.com/search?q=windows+laptops",
wait_until="domcontentloaded",
)
current_page = 1
product_info_generator = await scrape_walmart(page, current_page)
with open("walmart_products.json", "w", encoding="utf-8") as json_file:
json_file.write("[")
first = True
async for product in product_info_generator:
if not first:
json_file.write(",\\n")
json.dump(product, json_file, ensure_ascii=False, indent=4)
first = False
json_file.write("\\n]")
print("Product information saved to walmart_products.json")
asyncio.run(main())
Окончательный результат
Вы можете найти полный код для очистки данных Walmart с помощью прокси Massive в Суть GitHub.
Когда вы запустите код, результат будет выглядеть примерно так:
[
{
"title": "14.1in Windows 11 Pro Laptop, 8GB DDR4, 512GB SSD Computer, Intel Celeron, 1920x1080, 1TB Expansion, Silver",
"product_url": "<https://www.walmart.com/ip/Temlicolo-14-1-Laptop-8GB-RAM-PC-512GB-SSD-Intel-Celeron-N4020C-up-to-2-8GHz-Windows-11-Pro-Webcam-1TB-SSD-Expansion-Silver/1519228026?classType=VARIANT&selectedSellerId=101196098&from=/search>",
"current_price": "$227.89",
"previous_price": "$499.99",
"rating": "4.5",
"num_reviews": "220",
"shipping_info": "Free shipping, arrives in 2 days"
},
{
"title": "HP Stream 14 inch Windows Laptop Intel Processor N4120 4GB RAM 64GB eMMC Pink (12-mo. Microsoft 365 included)",
"product_url": "<https://www.walmart.com/ip/HP-Stream-14-inch-Laptop-Intel-Processor-N4102-4GB-RAM-64GB-eMMC-Pink-12-mo-Microsoft-365-included/443153637?classType=VARIANT&athbdg=L1102&from=/search>",
"current_price": "$199.00",
"previous_price": "$229.00",
"rating": "4",
"num_reviews": "11,240",
"shipping_info": "Free pickup today\\nDelivery today\\nFree shipping, arrives today"
},
{
"title": "Jumper 15.6\\" Windows 11 Laptop 4GB DDR4 128GB Rom Computer with Intel Celeron 5205U, Come with 1-Yr Free Office 365",
"product_url": "<https://www.walmart.com/ip/Jumper-15-6-Laptop-4GB-DDR4-128GB-ROM-Computer-with-Dual-Core-Intel-Celeron-5205U-CPU-1-yr-Office-Free-1366x768-HD/9497006657?classType=VARIANT&selectedSellerId=101078354&from=/search>",
"current_price": "$199.89",
"previous_price": "$379.99",
"rating": "4.2",
"num_reviews": "6",
"shipping_info": "Free shipping, arrives in 2 days"
}
]
Проверьте полную JSON-файл со всеми данными Walmart «ноутбуком Windows», собранными со всех доступных страниц.
Подведение итогов
В этой статье обсуждалось, как использование прокси-серверов Massive помогает извлекать ценные данные, сводя к минимуму риск обнаружения и блокировки. Для получения дополнительной информации о настройке прокси-сервера или лучших практиках посетите наш официальная документация.
Готовы начать? Подпишитесь на Massive Proxies сегодня 🚀

Я являюсь соучредителем и генеральным директором Massive. Помимо работы над стартапами, я музыкант, спортсмен, ментор, ведущий мероприятий и волонтер.