Walmart é a maior empresa do mundo, tanto em termos de receitas como de número de empregados. E, contrariamente à opinião popular, Walmart é muito mais do que uma simples empresa de retalho. De facto, é um dos maiores sítios web de comércio eletrónico do mundo, o que o torna uma excelente fonte de informação sobre produtos. No entanto, devido à vasta carteira de produtos, é impossível para qualquer pessoa coletar estes dados manualmente, razão pela qual este é o caso de utilização ideal para a raspagem da web.
Com a raspagem da web, pode obter rapidamente dados sobre milhares de produtos de Walmart (como o nome do produto, o preço, a descrição, as imagens e as classificações) e armazená-los em qualquer formato que considere útil. A raspagem de Walmart permite-lhe monitorizar os preços de diferentes produtos e o seu nível de estoque, analisar os movimentos do mercado e o comportamento dos clientes e criar diferentes aplicações.
Neste artigo, você aprenderá dois métodos completamente diferentes de raspagem de Walmart.com. Em primeiro lugar, seguirá instruções passo a passo para aprender a raspar Walmart utilizando Python e Selenium, uma ferramenta utilizada principalmente para automatizar aplicações web para fins de teste. Em segundo lugar, aprenderá como pode usar mais facilmente o raspador de Walmart de Bright Data para fazer a mesma coisa.
Raspagem de Walmart
Como deve saber, existem muitas formas diferentes de extrair informação de sítios web, incluindo o Walmart. Um desses métodos envolve a utilização de Python e Selenium.
Instruções sobre a raspagem de Walmart com Python e Selenium
Python é uma das linguagens de programação mais populares no que diz respeito à raspagem da web. Entretanto, Selenium é utilizado principalmente para automatizar os testes. No entanto, também pode ser utilizado para raspagem da web devido à sua capacidade de automatizar os navegadores web.
Essencialmente, Selenium simula ações manuais num navegador web. Com Python e Selenium, pode simular a abertura de um navegador web e de qualquer página web e, em seguida, raspar informações dessa página específica. Para tal, utiliza um WebDriver, que é utilizado para controlar os navegadores web.
Se ainda não tiver o Selenium instalado, precisa de instalar a biblioteca Selenium e um controlador de navegador. As instruções para o fazer estão disponíveis na documentação de Selenium.
Devido à sua popularidade, o ChromeDriver também será utilizado neste artigo, mas os passos são os mesmos, independentemente do controlador.
Veja agora como pode utilizar Python e Selenium para realizar algumas tarefas comuns de raspagem da web:
Procurar produtos
Para começar a utilizar Selenium para simular a pesquisa de produtos de Walmart, é necessário importá-lo. Pode fazê-lo com o seguinte trecho de código:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
Depois de importar Selenium, o próximo passo é usá-lo para abrir um navegador da web, neste caso, o Chrome. No entanto, pode escolher o navegador que preferir. Depois de abrir um navegador, os passos são os mesmos. Abrir um navegador é muito simples, e pode fazê-lo executando o seguinte código como um script de Python ou a partir de um Jupyter Notebook:
s=Service('/path/to/chromedriver')
driver = webdriver.Chrome(service=s)
Este simples trecho de código não fará mais nada, exceto abrir o Chrome. Aqui está o resultado:
Agora que abriu Chrome, precisa de ir para a página inicial de Walmart, o que pode fazer com o seguinte código:
driver.get("https://www.walmart.com")
Como pode ver na captura de ecrã, esta opção abre simplesmente o sítio Walmart.com.
O próximo passo é examinar manualmente o código-fonte da página com a ferramenta Inspecionar. Esta ferramenta permite-lhe inspecionar qualquer elemento específico de uma página web. Com ela, pode ver (e até editar) o HTML e o CSS de qualquer página web.
Uma vez que pretende procurar um produto, tem de navegar para a barra de pesquisa, clicar com o botão direito do rato e clicar em Inspecionar. Localize a etiqueta de entrada com o atributo type
igual a search
. Esta é a barra de pesquisa onde deve introduzir o seu termo de pesquisa. Depois, é preciso encontrar o atributo name
e ver o seu valor. Neste caso, pode ver que o atributo name
tem o valor q:
Para introduzir uma consulta na barra de pesquisa, pode utilizar o seguinte trecho de código:
search = driver.find_element("name", "q")
search.send_keys("Gaming Laptops")
Este código introduzirá a consulta Computadores portáteis para jogos
, mas pode introduzir qualquer frase que deseje, substituindo o termo “Computadores portáteis para jogos” por qualquer outro termo:
Tenha em atenção que o código anterior apenas introduzia o termo de pesquisa na barra de pesquisa e não o pesquisava efetivamente. Para pesquisar efetivamente o termo, é necessária a seguinte linha de código:
search.send_keys(Keys.ENTER)
E este é o aspeto do resultado:
Agora deve obter todos os resultados para o termo de pesquisa que introduziu. E se quiser pesquisar um termo diferente, só precisa de executar as duas últimas linhas de código com o novo termo de pesquisa pretendido.
Navegar para a página de um produto e raspar informações do produto
Outra tarefa comum que pode realizar com Selenium é abrir a página de um produto específico e raspar informações sobre o mesmo. Por exemplo, pode extrair o nome, a descrição, o preço, a classificação ou as avaliações do produto.
Digamos que escolheu um produto cujas informações pretende que sejam raspadas. Comece por abrir a página do produto, o que pode ser feito com o seguinte código (assumindo que já instalou e importou Selenium no primeiro exemplo):
url = "https://www.walmart.com/ip/Acer-Nitro-5-15-6-Full-HD-IPS-144Hz-Display-11th-Gen-Intel-Core-i5-11400H-NVIDIA-GeForce-RTX-3050Ti-Laptop-GPU-16GB-DDR4-512GB-NVMe-SSD-Windows-11-Ho/607988022?athbdg=L1101"
driver.get(url)
Quando a página estiver aberta, terá de utilizar a ferramenta Inspecionar. Essencialmente, é necessário navegar para qualquer elemento cuja informação pretenda raspar, clicar com o botão direito do rato sobre ele e clicar em Inspecionar. Por exemplo, quando inspecione o título do produto, verá que o título está numa etiqueta H1. Uma vez que esta é a única etiqueta H1 na página, pode obtê-la com o seguinte trecho de código:
title = driver.find_element(By.TAG_NAME, "h1")
print(title.text)
>>>'Acer Nitro 5 , 15.6" Full HD IPS 144Hz Display, 11th Gen Intel Core i5-11400H, NVIDIA GeForce RTX 3050Ti Laptop GPU, 16GB DDR4, 512GB NVMe SSD, Windows 11 Home, AN515-57-5700'
De forma semelhante, pode localizar e raspar o preço, a classificação e o número de avaliações do produto:
price = driver.find_element(By.CSS_SELECTOR, '[itemprop="price"]')
print(price.text)
>>> '$899.00'
rating = driver.find_element(By.CLASS_NAME,"rating-number")
print(rating.text)
>>> '(4.6)'
number_of_reviews = driver.find_element(By.CSS_SELECTOR, '[itemprop="ratingCount"]')
print(number_of_reviews.text)
>>> '108 reviews'
Um aspeto importante a ter em conta é que Walmart torna extremamente difícil a raspagem de dados da forma aqui apresentada. Isto deve-se ao facto de Walmart ter sistemas antisspam que tentam ativamente bloquear os raspadores da web. Por isso, se os seus esforços de raspagem da web forem constantemente bloqueados, saiba que provavelmente a culpa não é sua e que não há muito que possa fazer. No entanto, a utilização da solução apresentada na seção seguinte deverá revelar-se muito mais eficaz.
Instruções passo a passo sobre a raspagem de Walmart com Bright Data
Como pode ver, a raspagem de Walmart com Python e Selenium não é muito simples. Há uma maneira muito mais fácil de raspar o sítio web de Walmart, que envolve o uso do IDE para Raspador da Web de Bright Data. Com esta ferramenta, pode executar de forma mais fácil e eficiente as mesmas tarefas apresentadas anteriormente. Outra vantagem de utilizar o IDE para Raspador da Web é que Walmart não poderá bloquear instantaneamente os seus esforços.
Para utilizar o IDE para Raspador da Web, é necessário primeiro inscrever-se numa conta de Bright Data. Depois de se registar e iniciar sessão, aparece o seguinte ecrã. Clique no botão Conjuntos de Dados e IDE para Raspador da Web à esquerda:
O ecrã seguinte é apresentado. A partir daí, navegue até ao campo Meus raspadores:
Isto mostrará os seus raspadores da web existentes (se tiver algum) e lhe dará a opção de desenvolver um raspador da web (IDE). Partindo do princípio de que é a primeira vez que utiliza Bright Data, não terá nenhum raspador da web, pelo que deve clicar em Desenvolver um raspador da web (IDE):
Lhe será dada a opção de utilizar um dos modelos existentes ou de começar o código do zero. Para raspar Walmart.com especificamente, clique em Começar do zero. Isto abrirá o IDE para Raspador da Web de Bright Data:
O IDE para Raspador da Web é composto por várias janelas diferentes. Na parte superior esquerda, encontrará a janela Código de interação. Como o nome sugere, esta janela é utilizada para interagir com um sítio web, incluindo navegar e percorrer o sítio web, clicar em botões e realizar várias outras ações. A seguir, encontra-se a janela Código analisador, que lhe permite analisar os resultados HTML da interação com o sítio web. No lado direito, pode pré-visualizar e testar o seu código.
Além disso, nas definições de código, no canto superior direito, pode escolher entre diferentes tipos de trabalhadores. Pode alternar entre um código (a opção predefinida) e um trabalhador do navegador para navegar e rastejar os dados:
Agora veja como pode raspar os mesmos dados para o mesmo produto, tal como foi feito com Python e Selenium. Para começar, navegue para a página do produto, o que pode ser feito com a seguinte linha de código na janela Código de interação:
navigate('https://www.walmart.com/ip/Acer-Nitro-5-15-6-Full-HD-IPS-144Hz-Display-11th-Gen-Intel-Core-i5-11400H-NVIDIA-GeForce-RTX-3050Ti-Laptop-GPU-16GB-DDR4-512GB-NVMe-SSD-Windows-11-Ho/607988022?athbdg=L1101');
Em alternativa, pode utilizar um parâmetro de entrada alterável com navigate(input.url)
. Nesse caso, adicione os URLs que pretende extrair como uma entrada, como mostrado aqui:
Em seguida, é necessário coletar os dados pretendidos, o que pode ser feito com este código:
let data = parse();
collect({
title: data.title,
price: data.price,
rating: data.rating,
number_of_reviews: data.number_of_reviews,
});
A última coisa que precisa de fazer é analisar o HTML em dados estruturados. Pode fazê-lo com a ajuda do seguinte trecho de código na janela de Código analisador:
return {
title: $('h1').text().trim(),
price: $('span.inline-flex:nth-child(2) > span:nth-child(1)').text(),
rating: $('span.f7').text(),
number_of_reviews: $('a.f7').text(),
};
Em seguida, pode obter os dados pretendidos diretamente no IDE para Raspador da Web. Basta clicar no botão de reprodução no lado direito (ou premir Ctrl+Enter) e os resultados de que necessita serão apresentados. Também é possível descarregar os dados diretamente do IDE para Raspador da Web:
No caso de ter escolhido o navegador em vez do código como tipo de trabalhador, este é o aspeto do resultado:
Obter resultados diretamente do IDE para Raspador da Web é apenas uma das opções que tem para obter os dados. Também pode definir as suas preferências de entrega no painel de controlo Meus raspadores.
Por último, se achar que a raspagem da web é demasiado difícil, mesmo com o IDE para Raspador da Web, Bright Data fornece um conjunto de dados de produtos de Walmart disponíveis no Mercado de Conjuntos de Dados, onde existem inúmeros conjuntos de dados disponíveis com o clique de um botão:
Como mostrado aqui, usar o IDE para Raspador da Web de Bright Data é mais fácil e mais amigável do que criar seu próprio raspador da web com Python e Selenium. Melhor ainda, o IDE para Raspador da Web de Bright Data permite que os iniciantes comecem a coletar dados de Walmart. Por outro lado, é necessário um sólido conhecimento de programação para raspar Walmart.com com Python e Selenium.
Para além da facilidade de utilização, outro aspeto impressionante do raspador de Walmart de Bright Data é a sua escalabilidade. Pode raspar dados sobre tantos produtos quantos necessitar sem nenhum problema.
Um aspeto fundamental a salientar no que diz respeito à raspagem da web é a legislação em matéria de privacidade. Muitas empresas proíbem ou restringem as informações que podem ser raspadas dos seus sítios web. Por isso, se estiver a criar o seu próprio raspador da web com Python e Selenium, tem de garantir que não está a quebrar nenhuma regra. No entanto, ao utilizar o IDE para Raspador da Web de Bright Data, a Bright Data assume esta responsabilidade e assegurará que as melhores práticas da indústria e todos os regulamentos de privacidade estejam a ser seguidos.
Conclusão
Este artigo discutiu a razão pela qual você gostaria de raspar os dados de Walmart, mas o mais importante é que você realmente aprendeu como raspar os preços, nomes, número de avaliações e classificações de milhares de produtos de Walmart.
Como aprendeu, pode raspar estes dados utilizando Python e Selenium; no entanto, este método pode ser difícil e apresenta desafios que podem intimidar os principiantes. Existem soluções que permitem uma raspagem muito mais fácil de dados de Walmart, como o IDE para Raspador da Web. Fornece funções e modelos de código para raspar muitos sítios web populares, permite-lhe evitar CAPTCHAs e está em conformidade com as leis de proteção de dados.