Если вы регулярно делаете покупки в Walmart, вам может быть интересно, когда тот или иной товар поступит в продажу или на него будет действовать специальное предложение. Проверять цены вручную каждый день может быть хлопотно, но, создав трекер цен Walmart, вы сможете автоматизировать процесс отслеживания изменений цен и получать уведомления о снижении цены.
Это руководство шаг за шагом проведет вас через создание собственного трекера цен Walmart - от сбора и хранения данных до мониторинга цен и автоматических оповещений. Даже если вы новичок в программировании, вы сможете следовать за ним и заставить его работать!
Что могут сделать отслеживатели цен Walmart?
Допустим, вы планируете купить новый телевизор в Walmart, но не уверены, что сейчас самое подходящее время для покупки. Проверять цены вручную каждый день - это отнимает много времени. Вот тут-то и пригодится инструмент отслеживания цен.
-
Автоматически отслеживайте цену продукта 24 часа в сутки 7 дней в неделю.
-
Ведите учет исторических тенденций изменения цен.
-
Мгновенное уведомление по электронной почте или SMS о снижении цены.
Что вам понадобится для начала отслеживания
Прежде чем приступить к работе, убедитесь, что у вас наготове следующие инструменты:
-
Python (рекомендуется версия 3.8 или выше) - для написания и запуска скрипта
-
Редактор кода (VS Code или PyCharm) - для упрощения и повышения эффективности кодирования
-
Аккаунт разработчика Walmart (необязательно) - использование официального API обеспечивает большую стабильность
-
Прокси IP-адреса (необязательно) - помогает избежать блокировки при частых запросах
Установите необходимые библиотеки Python
Откройте терминал или командную строку и выполните следующую команду:
pip install requests beautifulsoup4 selenium pandas schedule smtplib
Если вы планируете использовать автоматизацию браузера, вам также потребуется установить ChromeDriver или geckodriverв зависимости от браузера.
Как получить цены на товары Walmart
Способ 1: Официальный API Walmart (рекомендуется)
Walmart предлагает API для разработчиков, позволяющий получать данные о товарах напрямую.
Шаг 1: Получите ключ API
Посетите портал разработчиков Walmart.

Создайте учетную запись и подайте заявку на получение ключа API (одобрение может занять некоторое время).
Шаг 2: Получение цены с помощью Python
запросы на импорт
API_KEY = "YOUR_SCRAPERAPI_KEY"
PRODUCT_URL = "https://www.walmart.com/ip/123456789" # Замените на URL вашего продукта
def get_price():
response = requests.get(
f "http://api.scraperapi.com?api_key={API_KEY}&url={PRODUCT_URL}"
)
# Извлеките цену из HTML (пример упрощен)
return "29.99" # Замените логику парсинга на реальную
price = get_price()
print(f "Текущая цена: ${price}")
Хотя этот способ является легальным и менее вероятным для блокировки, он требует доступа к API и может иметь ограничения по скорости.
Метод 2: Соскоб с помощью веб-краулера (альтернативный вариант)
Если вы не хотите использовать API, вы можете воспользоваться такими инструментами, как Селен или BeautifulSoup чтобы получить цену непосредственно со страницы товара.
Пример: Автоматическое извлечение цены со страницы продукта с помощью Selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Настройте безголовый браузер (работает без открытия окна)
options = Options()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
product_url = "https://www.walmart.com/ip/123456789" # Замените на URL вашего продукта
driver.get(product_url)
# Найдите элемент цены (возможно, вам придется изменить XPath)
price_element = driver.find_element("xpath", '//span[@itemprop="price"]')
цена = price_element.text
print(f "Текущая цена: {price}")
driver.quit() # Закрыть браузер
Walmart защищает от мошенничества, и частые запросы могут привести к блокировке вашего IP-адреса. Таким образом, добавление time.sleep(5) между запросами, чтобы избежать слишком быстрой загрузки сайта, а для надежности рекомендуется использовать вращающиеся IP-адреса прокси.
Обход обнаружения скрапинга Walmart [Необязательно]
Рекомендуемая частота запросов для одного IP-адреса составляет не чаще 1 раза в минуту без срабатывания защиты от ботов. Поэтому при частом посещении и скраппинге страниц Walmart используйте прокси-серверы, предлагающие чистые IP-адреса и регулярная смена UA очень важны для того, чтобы не быть замеченными и не получить запрет на использование IP-адресов. Вот как управлять и оптимизировать настройку трекера цен Walmart.
(1) Управление пулом доверенных лиц
Поскольку ваш IP-адрес может быть временно заблокирован из-за слишком большого количества запросов на скраппинг, что приведет к ошибке 403 Forbidden, а цены на товары Walmart могут отличаться в зависимости от региона - например, американские и канадские пользователи могут видеть разные цены на один и тот же товар, необходим огромный пул прокси-серверов с миллионами IP-адресов для ротации.
Впечатляющая сеть OkeyProxy 150 миллионов реальных IP-адресов, охватывающих 200 с лишним стран. Поддержка всех устройств и сценариев использования, включая автоматическую ротацию IP-адресов для скраппинга и отслеживания данных. Этот прокси-сервис предлагает конкурентоспособные цены, позиционируя его как лучший выбор для бытового прокси-скрапера. Он предлагает $3/GB PROXY TRIAL, позволяя каждому пользователю испытать надежность, скорость и универсальность скраппинг-прокси.
Пул прокси # - замените на собственные IP-адреса прокси
PROXY_POOL = [
"http://45.123.123.123:8080",
"http://67.234.234.234:8888",
"http://89.111.222.333:3128"
]
# Случайный выбор и проверка прокси из пула
def rotate_proxy():
while True:
proxy = random.choice(PROXY_POOL)
if check_proxy(proxy):
return proxy
else:
print(f "Прокси {proxy} недоступен, попробуем другой...")
PROXY_POOL.remove(proxy)
raise Exception("В пуле не осталось действующих прокси").
# Проверьте, работает ли прокси, сделав тестовый запрос
def check_proxy(proxy):
try:
test_url = "https://httpbin.org/ip"
response = requests.get(test_url, proxies={"http": proxy}, timeout=5)
return response.status_code == 200
except:
return False
(2) Стратегии борьбы с ботами
Рандомизация заголовков запросов
Чтобы не быть обнаруженным как бот, меняйте User-Agent при каждом запросе:
from fake_useragent import UserAgent
ua = UserAgent()
headers = {"User-Agent": ua.random}
Добавьте случайные задержки между запросами
Внесение задержки между запросами помогает имитировать человеческое поведение:
импортировать время
импорт случайного
time.sleep(random.uniform(3, 10)) # Подождите 3-10 секунд до следующего запроса
Эти стратегии помогут снизить риск блокировки и со временем повысить надежность вашего скрепера.
Сохранение истории цен на товары Walmart
После получения информации о цене важно сохранить ее, чтобы вы могли отслеживать исторические тенденции с течением времени.
Метод 1: Храните данные в базе данных SQLite
импортировать sqlite3
from datetime import datetime
# Создайте базу данных или подключитесь к ней
conn = sqlite3.connect("walmart_prices.db")
cursor = conn.cursor()
# Создайте таблицу, если она не существует
cursor.execute('''
CREATE TABLE IF NOT EXISTS prices (
product_id TEXT,
цена REAL,
дата TEXT
)
''')
# Вставьте новые данные о ценах
cursor.execute("INSERT INTO prices VALUES (?, ?, ?)",
(product_id, price, datetime.now()))
conn.commit()
conn.close()
Хранение данных в локальной базе данных SQLite после скраппинга Walmart.com - это легкий способ, который автоматически создает файлы, не требуя установки дополнительного программного обеспечения.
Метод 2: сохранение данных в CSV-файле (более простой)
import pandas as pd
из datetime import datetime
данные = {
"product_id": [product_id],
"price": [цена],
"date": [datetime.now()]
}
df = pd.DataFrame(data)
df.to_csv("prices.csv", mode="a", header=False) # Режим добавления
Оба метода хорошо работают - используйте базу данных для более сложных запросов или CSV для простоты.
Ежедневные оповещения об изменении цен в Walmart
1. Проверьте цены Walmart по определенному маршруту
Используйте расписание библиотека для автоматического запуска скрипта проверки цен в определенное время каждый день:
расписание импорта
время импорта
def check_price():
# Разместите здесь свой код для скраппинга и проверки цен
print("Проверяем цену...")
# Запускайте задачу каждый день в 9:00 утра
schedule.every().day.at("09:00").do(check_price)
while True:
schedule.run_pending()
time.sleep(60) # Проверять каждую минуту наличие запланированных задач
2. Отправка уведомлений по электронной почте при снижении цены
импортировать smtplib
из email.mime.text import MIMEText
def send_email(price):
отправитель = "[email protected]"
получатель = "[email protected]"
пароль = "ваш_электронный_пароль_или_пароль_приложения"
msg = MIMEText(f "Цена на товар снизилась! Последняя цена: ${price}")
msg["Subject"] = "Walmart Price Alert"
msg["From"] = отправитель
msg["To"] = получатель
с smtplib.SMTP("smtp.gmail.com", 587) в качестве сервера:
server.starttls()
server.login(sender, password)
server.sendmail(sender, receiver, msg.as_string())
Затем, в пределах вашего check_price() функция, запускающая оповещение, когда цена будет ниже целевой:
if price = 100: # Установите желаемый порог цены
send_email(price)
Развертывание системы отслеживания цен Walmart в облаке
Если вы хотите, чтобы ваш трекер цен Walmart работал постоянно или по расписанию, вы можете развернуть сценарий в облаке, используя один из следующих вариантов:
-
Действия GitHub - Бесплатный и отлично подходит для выполнения скриптов раз в день
-
Облачные серверы (AWS, Azure и т.д.) - Идеально подходит для мониторинга в режиме реального времени
-
PythonAnywhere - Удобно для новичков, хотя бесплатная версия имеет некоторые ограничения
Вот пример загрузки инструмента для скраппинга на Github после отслеживания цен Walmart, что встречается чаще всего.
Планирование трекеров цен Walmart в GitHub
Во-первых, создайте Репозиторий GitHub.
Затем добавьте .github/workflows/tracker.yml:
название: Walmart Price Tracker
вкл:
расписание:
- cron: "0 14 * * * *" # 2 PM UTC (скорректируйте с учетом вашего часового пояса)
задания:
run-tracker:
run-on: ubuntu-latest
шаги:
- uses: actions/checkout@v4
- имя: Run Tracker
запуск: python tracker.py
Бонусные функции для отслеживания цены товара Walmart
1. Мониторинг и соскабливание данных нескольких Walmart Itens
Вы можете легко отслеживать несколько продуктов, сохраняя их в списке и перебирая их в цикле:
СПИСОК_ПРОДУКТОВ = [
{ "id": "123456789", "name": "Беспроводные наушники", "порог": 50},
{ "id": "987654321", "name": "Smart Watch", "threshold": 200}
]
def monitor_multiple_products():
for product in PRODUCT_LIST:
price = get_price(product["id"])
if price = product["threshold"]:
send_email(f"{product['name']} just dropped to ${price}!")
Таким образом, вы будете получать отдельные оповещения для каждого товара, за которым следите, что очень удобно во время больших распродаж!
2. Визуализация ценовых тенденций на основе сохраненных данных отслеживания
Хотите проанализировать, как меняется цена с течением времени? Если вы храните данные о ценах в базе данных CSV или SQLite, просто постройте график исторических тенденций, используя панды и matplotlib:
import pandas as pd
import matplotlib.pyplot as plt
импортировать sqlite3
def plot_price_history():
# Загрузите данные из базы данных SQLite (или вы можете использовать pd.read_csv для файлов CSV)
conn = sqlite3.connect('walmart_prices.db')
df = pd.read_sql_query("SELECT * FROM prices", conn)
conn.close()
# Преобразуйте столбец даты в формат времени
df['date'] = pd.to_datetime(df['date'])
# Дополнительно: фильтр для конкретного товара
product_id = "123456789"
product_df = df[df['product_id'] == product_id]
# График
plt.figure(figsize=(10, 5))
plt.plot(product_df['date'], product_df['price'], marker='o', linestyle='-')
plt.title(f "Тренд цен на товар {product_id}")
plt.xlabel("Дата")
plt.ylabel("Цена (USD)")
plt.grid(True)
plt.xticks(rotation=45)
plt.tight_layout()
plt.savefig("price_history.png")
plt.show()
Вы можете запланировать еженедельное выполнение этой функции и автоматически отправлять график в ваш почтовый ящик!
3. Создание веб-панели отслеживания цен Walmart
Вы можете создать простую панель Walmart Price Tracker, используя Фляга или Streamlit для отображения цен на товары и тенденций в веб-интерфейсе.
Например, Flask предоставляет HTML-шаблоны, в которых вы можете отображать текущие цены, исторические тенденции (в виде изображений или графиков) и многое другое. Вот базовый пример для начала работы:
из flask import Flask, render_template
import pandas as pd
импортировать sqlite3
app = Flask(__name__)
@app.route("/")
def index():
conn = sqlite3.connect("walmart_prices.db")
df = pd.read_sql_query("SELECT * FROM prices", conn)
conn.close()
latest_prices = df.sort_values("date").groupby("product_id").last().reset_index()
return render_template("index.html", data=latest_prices.to_dict(orient="records"))
После этого создайте простой HTML-шаблон (templates/index.html) для отображения цен на товары.

Часто задаваемые вопросы (FAQ)
Вопрос 1: Почему мой скребок блокируется?
Вы отправляете слишком много запросов за короткий промежуток времени. Используйте элитные доверенные лица чтобы чередовать IP-адреса и добавлять случайную задержку между каждым запросом, чтобы избежать превышения лимита скорости:
time.sleep(random.randint(2, 5)) # Подождите 2-5 секунд до следующего запроса
Вопрос 2: Как найти идентификатор продукта?
Перейдите на страницу товара Walmart - число, стоящее после /ip/ в URL, является идентификатором товара. Например:
https://www.walmart.com/ip/123456789 → ID продукта: 123456789
Вопрос 3: Могу ли я отслеживать несколько продуктов одновременно?
Да! Просто создайте список идентификаторов продуктов и пройдитесь по ним:
product_list = ["123", "456", "789"].
для product_id в product_list:
price = get_price(product_id)
save_price(product_id, price)
Вы также можете расширить эту функцию, чтобы отправлять отдельные оповещения для каждого продукта, если его цена падает.
Подведение итогов
Вот и все! Теперь у вас есть полностью автоматизированный трекер цен Walmart, который отслеживает цены 24 часа в сутки 7 дней в неделю и мгновенно уведомляет вас о снижении цен.
Если вы развернули на сайте walmart.com систему отслеживания цен, важно соблюдать правила robots.txt Walmart (ознакомиться с правилами можно здесь) и вращать IP-адреса прокси-серверов соответственно.
С помощью своего собственного трекера цен Walmart вы сможете проверять цены, пока спите, и больше никогда не пропустите ни одной сделки!
Высококлассный прокси-сервис Socks5/Http(s)

- Масштабируемые планы: Статический/Ротация прокси-серверов резидентов
- Бесшовная интеграция: Win/iOS/Android/Linux
- Высокая безопасность: Идеально подходит для антидетекта браузеров, эмуляторов, скреперов и т.д.
- Надежная производительность: Быстрая передача и низкая задержка



![Как использовать прокси-сервер в браузере [Руководство] браузер в браузере прокси](https://www.okeyproxy.com/wp-content/uploads/2025/02/browser-in-browser-proxy-500x278.png)




