Se faz compras no Walmart regularmente, pode perguntar-se quando é que um determinado artigo estará à venda ou terá uma oferta especial. Verificar manualmente os preços todos os dias pode ser um incómodo, mas com um pouco de tecnologia para criar um localizador de preços do Walmart, pode automatizar o processo para monitorizar as alterações de preços e ser notificado quando o preço baixar.
Este guia irá guiá-lo na construção do seu próprio rastreador de preços do Walmart, passo a passo - desde a recolha e armazenamento de dados até à monitorização de preços e alertas automáticos. Mesmo que não tenha experiência em programação, conseguirá acompanhar o processo e pô-lo a funcionar!
O que é que os localizadores de preços da Walmart podem fazer?
Digamos que está a planear comprar um novo televisor na Walmart, mas não tem a certeza se esta é a melhor altura para o fazer. Verificar o preço manualmente todos os dias consome muito tempo. É aí que uma ferramenta de controlo de preços é útil.
-
Monitorizar automaticamente o preço do produto 24 horas por dia, 7 dias por semana.
-
Manter um registo das tendências históricas dos preços.
-
Notificamo-lo instantaneamente por e-mail ou SMS quando o preço baixar.
O que é necessário para começar a seguir o rasto
Antes de começar, certifique-se de que tem as seguintes ferramentas prontas:
-
Python (versão recomendada 3.8 ou superior) - para escrever e executar o script
-
Editor de código (VS Code ou PyCharm) - para tornar a codificação mais fácil e mais eficiente
-
Conta de programador Walmart (opcional) - a utilização da API oficial proporciona mais estabilidade
-
IPs proxy (opcional) - ajuda a evitar ser bloqueado durante pedidos frequentes
Instalar as bibliotecas Python necessárias
Abra o terminal ou a linha de comandos e execute o seguinte comando:
pip install requests beautifulsoup4 selenium pandas schedule smtplib
Se planear utilizar a automatização do navegador, também terá de instalar ChromeDriver
ou condutor de lagartixas
, dependendo do seu browser.
Como obter os preços dos produtos Walmart
Método 1: API oficial do Walmart (recomendado)
A Walmart disponibiliza uma API para programadores que lhe permite obter diretamente os dados dos produtos.
Passo 1: Obter uma chave API
Visite o Portal do desenvolvedor do Walmart.

Crie uma conta e solicite uma chave de API (a aprovação pode demorar algum tempo).
Passo 2: Obter o preço utilizando Python
pedidos de importação
API_KEY = "YOUR_SCRAPERAPI_KEY"
PRODUCT_URL = "https://www.walmart.com/ip/123456789" # Substituir pelo URL do seu produto
def get_price():
response = requests.get(
f "http://api.scraperapi.com?api_key={API_KEY}&url={PRODUCT_URL}"
)
# Extrair o preço do HTML (exemplo simplificado)
return "29.99" # Substituir pela lógica de análise efectiva
preço = get_price()
print(f "Preço atual: ${preço}")
Embora esta forma seja legal e menos provável de ser bloqueada, requer acesso à API e pode ter limites de taxa.
Método 2: Extrair com um Web Crawler (Alternativa)
Se não quiser utilizar a API, pode utilizar ferramentas como Selénio
ou Bela Sopa
para obter o preço diretamente da página do produto.
Exemplo: Extrair o preço da página do produto automaticamente usando o Selenium
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
# Configurar o browser sem cabeça (corre sem abrir uma janela)
opções = Opções()
options.add_argument("--headless")
driver = webdriver.Chrome(options=options)
product_url = "https://www.walmart.com/ip/123456789" # Substituir pelo URL do produto
driver.get(product_url)
# Localizar o elemento preço (pode ser necessário ajustar o XPath)
elemento_preço = driver.find_element("xpath", '//span[@itemprop="price"]')
preço = price_element.text
print(f "Preço atual: {preço}")
driver.quit() # Fechar o browser
O Walmart tem protecções anti-raspagem e os pedidos frequentes podem fazer com que o seu IP seja bloqueado. Desta forma, adicionar time.sleep(5)
entre pedidos para evitar que o site seja atingido muito rapidamente e a utilização de IPs de proxy rotativos é recomendada para garantir a fiabilidade.
Contorno da deteção de raspagem do Walmart [Opcional]
A frequência de pedido recomendada para um único endereço IP é não mais do que 1 vez por minuto sem acionar as protecções anti-bot. Por conseguinte, quando se visitam e extraem frequentemente páginas do Walmart, a utilização de proxies que oferecem IPs limpos e alterar a UA regularmente são essenciais para evitar ser sinalizado e obter proibições de IP. Veja como gerenciar e otimizar a configuração do rastreador de preços do Walmart.
(1) Gestão do grupo de procuradores
Para que o seu endereço IP possa ficar temporariamente bloqueado devido a demasiados pedidos de scraping, resultando num erro 403 Forbidden, e os preços dos produtos Walmart possam variar consoante a região - por exemplo, os utilizadores dos EUA e do Canadá podem ver preços diferentes para o mesmo artigo, é necessário um vasto conjunto de proxy com milhões de IPs para rodar.
A impressionante rede da OkeyProxy apresenta mais de 150 milhões de IPs reais, abrangendo mais de 200 países. Suporta todos os dispositivos e casos de utilização, incluindo a rotação automática de IPs para recolha e rastreio de dados. Este serviço de proxy oferece preços competitivos, posicionando-o como a melhor escolha para scraper de proxy residencial. Está a oferecer um PROXY TRIAL de $3/GB, permitindo que todos os utilizadores experimentem a fiabilidade, velocidade e versatilidade dos proxies de scraping.
# Pool de proxy - substitua pelos seus próprios IPs de proxy
PROXY_POOL = [
"http://45.123.123.123:8080",
"http://67.234.234.234:8888",
"http://89.111.222.333:3128"
]
# Selecionar e validar aleatoriamente um proxy do conjunto
def rotate_proxy():
while True:
proxy = random.choice(PROXY_POOL)
if check_proxy(proxy):
return proxy
else:
print(f "Proxy {proxy} não está disponível, tente outro...")
PROXY_POOL.remove(proxy)
raise Exception("Não restam proxies válidos no conjunto.")
# Verificar se um proxy está a funcionar fazendo um pedido de teste
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
exceto:
return False
(2) Estratégias anti-bot
Randomizar cabeçalhos de pedidos
Para evitar ser detectado como um bot, alterne o seu User-Agent em cada pedido:
from fake_useragent import UserAgent
ua = UserAgent()
headers = {"User-Agent": ua.random}
Adicionar atrasos aleatórios entre pedidos
A introdução de um atraso entre os pedidos ajuda a imitar o comportamento humano:
importar tempo
importar aleatório
time.sleep(random.uniform(3, 10)) # Espera 3-10 segundos antes do próximo pedido
Estas estratégias ajudam a reduzir o risco de bloqueio e melhoram a fiabilidade do seu raspador ao longo do tempo.
Guardar o histórico de preços dos produtos da Walmart
Depois de obter o preço, é importante armazená-lo para poder acompanhar as tendências históricas ao longo do tempo.
Método 1: Armazenar dados numa base de dados SQLite
importar sqlite3
from datetime import datetime
# Criar ou ligar a uma base de dados
conn = sqlite3.connect("walmart_prices.db")
cursor = conn.cursor()
# Criar uma tabela se esta não existir
cursor.execute('''
CREATE TABLE IF NOT EXISTS prices (
produto_id TEXT,
preço REAL,
data TEXT
)
''')
# Introduzir os novos dados relativos ao preço
cursor.execute("INSERT INTO preços VALUES (?, ?, ?)",
(product_id, price, datetime.now()))
conn.commit()
conn.close()
O armazenamento de dados numa base de dados SQLite local após a recolha de dados do Walmart.com é leve e cria ficheiros automaticamente, sem necessidade de instalar software adicional.
Método 2: Armazenar dados num ficheiro CSV (mais simples)
importar pandas as pd
from datetime import datetime
dados = {
"product_id": [product_id],
"price": [preço],
"date": [datetime.now()]
}
df = pd.DataFrame(data)
df.to_csv("prices.csv", mode="a", header=False) # Modo de anexação
Ambos os métodos funcionam bem - utilize uma base de dados para consultas mais avançadas ou CSV para simplificar.
Alertas diários de rastreio de preços da Walmart
1. Verificar os preços da Walmart por determinado trajeto
Utilizar o horário
para executar automaticamente o seu script de verificação de preços a uma hora específica todos os dias:
importar horário
hora de importação
def check_price():
# Coloque aqui o seu código de recolha de dados e de verificação de preços
print("Verificação de preço...")
# Execute a tarefa todos os dias às 9:00 AM
schedule.every().day.at("09:00").do(verificar_preço)
while True:
schedule.run_pending()
time.sleep(60) # Verificar a cada minuto as tarefas agendadas
2. Enviar notificações por correio eletrónico quando o preço desce
importar smtplib
from email.mime.text import MIMEText
def send_email(price):
remetente = "[email protected]"
recetor = "[email protected]"
password = "your_email_password_or_app_password"
msg = MIMEText(f "O preço do produto baixou! Último preço: ${preço}")
msg["Assunto"] = "Alerta de preço Walmart"
msg["De"] = remetente
msg["To"] = destinatário
com smtplib.SMTP("smtp.gmail.com", 587) como servidor:
server.starttls()
servidor.login(remetente, palavra-passe)
server.sendmail(sender, receiver, msg.as_string())
Depois, no seu check_price()
accionará o alerta quando o preço estiver abaixo do seu objetivo:
if price = 100: # Definir o limiar de preço pretendido
enviar_email(preço)
Implantação do Walmart Price Tracker na nuvem
Se pretender que o localizador de preços do Walmart seja executado continuamente ou em horários programados, pode implementar o script na nuvem utilizando uma das seguintes opções:
-
Acções do GitHub - Gratuito e ótimo para executar scripts uma vez por dia
-
Servidores em nuvem (AWS, Azure, etc.) - Ideal para monitorização em tempo real
-
PythonEm qualquer lugar - Fácil de utilizar para principiantes, embora a versão gratuita tenha alguns limites
Aqui está um exemplo que carrega a ferramenta de raspagem no Github após o rastreamento de preços do Walmart, que é mais comum.
Agendar rastreadores de preços do Walmart no GitHub
Em primeiro lugar, crie um Repositório GitHub.
Em seguida, adicione .github/workflows/tracker.yml
:
nome: Walmart Price Tracker
em:
horário:
- cron: "0 14 * * * *" # 2 PM UTC (ajuste para o seu fuso horário)
trabalhos:
run-tracker:
runs-on: ubuntu-latest
passos:
- usa: actions/checkout@v4
- nome: Run Tracker
executar: python tracker.py
Funcionalidades de bónus para acompanhar o preço do artigo da Walmart
1. Monitorizar e extrair dados de vários itens do Walmart
Pode acompanhar facilmente vários produtos, armazenando-os numa lista e percorrendo-os:
LISTA_DE_PRODUTOS = [
{"id": "123456789", "name": "Auriculares sem fios", "limite": 50},
{"id": "987654321", "name": "Relógio Inteligente", "limiar": 200}
]
def monitor_multiple_products():
para produto em PRODUCT_LIST:
price = get_price(product["id"])
if price = product["threshold"]:
send_email(f"{produto['nome']} acabou de baixar para ${preço}!")
Desta forma, receberá alertas separados para cada artigo que está a observar - muito útil durante os grandes saldos!
2. Visualizar tendências de preços a partir de dados de monitorização guardados
Quer analisar como o preço muda ao longo do tempo? Se estiver a armazenar dados de preços numa base de dados CSV ou SQLite, basta traçar tendências históricas utilizando pandas
e matplotlib
:
import pandas as pd
import matplotlib.pyplot as plt
importar sqlite3
def plot_price_history():
# Carregar dados da base de dados SQLite (ou pode utilizar pd.read_csv para ficheiros CSV)
conn = sqlite3.connect('walmart_prices.db')
df = pd.read_sql_query("SELECT * FROM prices", conn)
conn.close()
# Converter a coluna date para o formato datetime
df['date'] = pd.to_datetime(df['date'])
# Opcional: filtro para um produto específico
product_id = "123456789"
product_df = df[df['product_id'] == product_id]
# Traçar
plt.figure(figsize=(10, 5))
plt.plot(product_df['date'], product_df['price'], marker='o', linestyle='-')
plt.title(f "Tendência de preços para o produto {product_id}")
plt.xlabel("Data")
plt.ylabel("Preço (USD)")
plt.grid(Verdadeiro)
plt.xticks(rotação=45)
plt.tight_layout()
plt.savefig("preço_histórico.png")
plt.show()
Pode programar esta função para ser executada semanalmente e enviar automaticamente o gráfico para a sua caixa de entrada!
3. Construir um painel de controlo Web do Walmart Price Tracker
Pode criar um painel simples do Walmart Price Tracker utilizando Frasco
ou Fluxo luminoso
para apresentar os preços e as tendências dos produtos numa interface Web.
Por exemplo, o Flask serve modelos HTML onde pode mostrar preços actuais, tendências históricas (como imagens ou gráficos) e muito mais. Aqui está um exemplo básico para o ajudar a começar:
from flask import Flask, render_template
importar pandas as pd
importar 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"))
Depois disso, crie um modelo HTML simples (templates/index.html) para apresentar os preços dos produtos.

Perguntas frequentes (FAQ)
Q1: Porque é que o meu scraper está a ser bloqueado?
Está a enviar demasiados pedidos num curto espaço de tempo. Utilizar procuradores de elite para rodar endereços IP e adicionar um atraso aleatório entre cada pedido para evitar atingir os limites de taxa:
time.sleep(random.randint(2, 5)) # Espera 2-5 segundos antes do próximo pedido
Q2: Como posso encontrar a ID do produto?
Aceda à página do produto Walmart - o número que vem a seguir a /ip/ no URL é o ID do produto. Por exemplo:
https://www.walmart.com/ip/123456789 → A ID do produto é 123456789
P3: Posso monitorizar vários produtos ao mesmo tempo?
Sim! Basta criar uma lista de IDs de produtos e percorrê-la:
lista_de_produtos = ["123", "456", "789"]
for product_id in product_list:
preço = get_price(product_id)
guardar_preço(product_id, preço)
Também pode alargar esta opção para enviar alertas separados para cada produto se os seus preços baixarem.
Conclusão
É tudo! Agora tem um localizador de preços Walmart totalmente automatizado que monitoriza os preços 24 horas por dia, 7 dias por semana e notifica-o instantaneamente quando há uma queda.
Se tiver implementado um localizador de preços walmart.com em grande escala, é importante respeitar as diretrizes robots.txt da Walmart (ver as regras aqui) e rodar IPs proxy em conformidade.
Com o seu localizador de preços personalizado da Walmart, pode verificar os preços enquanto dorme - e nunca mais perder uma oferta!
Serviço de proxy Socks5/Http(s) de alto nível

- Planos escaláveis: Estático/Rotação de mandatários residenciais
- Integração perfeita: Win/iOS/Android/Linux
- Alta segurança: Ideal para navegadores antidetectores, emuladores, scrapers, etc.
- Desempenho fiável: Transferência rápida e baixa latência
