Voltar ao blogue
Casos de utilização
Robert SfichiLast updated on Mar 31, 20267 min read

Como utilizar a WebScrapingAPI para recolher dados do Yelp

Como utilizar a WebScrapingAPI para recolher dados do Yelp

Alguma vez já se perguntou como é que as empresas acompanham a concorrência? Claro que agentes duplos, investigadores privados e binóculos podem parecer divertidos, mas a vida real não é como nos filmes. A análise real da concorrência é um processo tedioso que é melhor deixar a cargo do software. Desta forma, pode concentrar-se em oferecer o máximo valor aos seus clientes.

Hoje em dia, os seus concorrentes já têm toda a informação de que precisa à disposição. Com as redes sociais a ganharem grande popularidade nas últimas duas décadas, as empresas estão a tentar estar mais presentes na vida dos seus clientes através da criação de uma presença online. A informação já está lá. Só temos de encontrar uma forma de automatizar o processo de recolha de dados.

No artigo a seguir, iremos criar um script que nos ajudará a recolher todas as informações de que precisamos sobre os nossos concorrentes, tirando partido dos seus perfis públicos no Yelp.

Por que deve recolher dados dos concorrentes

Investigar os preços dos produtos dos concorrentes, supervisionar a sua linha de produtos e categorias ou analisar a sua estratégia nas redes sociais são apenas três das táticas mais valiosas que pode utilizar para melhorar o seu negócio.

Encontrar e comparar preços de produtos não é uma tarefa muito difícil, mas é demorada. Utilizar uma ferramenta de web scraping pode ajudá-lo a obter automaticamente informações atualizadas sobre a estratégia de preços e as promoções relâmpago dos seus concorrentes.

Extrair as linhas de produtos e categorias dos seus concorrentes ajuda-o a compreender melhor as tendências que definem o mercado. Por exemplo, se for proprietário de um restaurante, pode descobrir que um prato específico, como o hambúrguer vegan, está em voga na sua cidade, pelo que pode fazer ajustes no seu menu para impulsionar mais vendas.

As redes sociais não são úteis apenas para fortalecer o vínculo entre a empresa e o cliente. Ao analisar a estratégia de redes sociais dos seus concorrentes, pode descobrir o que funciona e o que não funciona em apenas alguns minutos. Pode facilmente encontrar respostas para perguntas como «Quantas vezes publicam por semana?» ou «Que imagens mantêm o envolvimento a um nível elevado?» apenas através do scraping.

Por que o Yelp é o local perfeito para extrair dados da concorrência

O Yelp é uma das plataformas online mais populares onde os utilizadores podem partilhar as suas experiências, ajudando outros a tomar decisões informadas sobre empresas locais. Se é proprietário de uma empresa ou pretende abrir uma, descobrir informações valiosas sobre a concorrência pode aumentar significativamente a sua taxa de sucesso. Informações sobre a localização exata, horário de funcionamento, serviços de entrega ou tipo de negócio são apenas algumas das que pode encontrar ao navegar no Yelp.

O que é ainda melhor é que pode reduzir o tempo que gasta a analisar a concorrência utilizando uma ferramenta de web scraping e concentrar-se mais em construir um negócio melhor. Esta estratégia irá compensar a longo prazo, uma vez que automatizar o processo de recolha de dados pode tornar-se uma das tarefas mais tediosas e demoradas.

Como utilizar a WebScrapingAPI para extrair dados do Yelp

Na secção seguinte, iremos utilizar o Node.js e algumas bibliotecas como o got e o jsdom para criar o script que irá obter todos os dados de uma página do Yelp e formatá-los de forma a torná-los o mais compreensíveis possível. Vamos ver como toda a informação apresentada acima pode ser convertida em resultados tangíveis:

1. Encontre os dados de que necessita

Vamos supor que estamos interessados em abrir um restaurante na cidade de Nova Iorque. Gostaríamos de criar uma lista de concorrentes que inclua informações úteis como:

  • Número de avaliações
  • Tipo de restaurante
  • Preços
  • Localização

O URL que vamos extrair é o seguinte: https://www.yelp.ie/search?find_desc=restaurant&find_loc=New+York%2C+NY%2C+United+States&ns=1.

Pode fazer o scraping em simultâneo com o artigo se iniciar o seu período de avaliação gratuita com 5000 pedidos e acesso a todas as funcionalidades para testar o nosso produto. Pode utilizar qualquer ferramenta de scraping com a qual se sinta mais à vontade. Saiba apenas que, a partir daqui, o tutorial irá centrar-se em como obter os resultados utilizando a WebScrapingAPI.

Depois de criar com sucesso uma conta gratuita, aceda à página API Playground clicando no botão “Use API Playground” na página do Painel. A página deve ter este aspeto:

Tal como o nome sugere, este é o local onde podemos testar a ferramenta de scraping antes de criar o nosso script. Vamos copiar o URL apresentado acima na entrada de URL (coluna da esquerda), descer um pouco e clicar no botão “Send API Request”. Esta ação deverá devolver um resultado semelhante a este:

Agora vamos criar o script que vai fazer a maior parte do trabalho por nós.

2. Configurar o projeto

Crie a pasta do projeto, abra uma janela de terminal e navegue até ela. Tal como dissemos anteriormente, utilizaremos a biblioteca «got» para fazer os pedidos e «jsdom» para as nossas necessidades de análise. Depois de aceder à pasta do projeto, execute os seguintes comandos no terminal:

npm init -y
npm install got jsdom

O projeto deve agora incluir os ficheiros «package.json». Crie um novo ficheiro chamado «index.js» e abra-o utilizando o seu IDE preferido. Se não tiver nenhum instalado, recomendamos que descarregue o Visual Studio Code, uma vez que é considerado o IDE mais popular neste momento.

3. Fazer uma solicitação

Vamos definir os parâmetros, fazer a solicitação e analisar o HTML. Escreva as seguintes linhas no ficheiro «index.js» recém-criado:

const {JSDOM} = require("jsdom")

const got = require("got")

(async () => {
const params = {
    api_key: "YOUR_API_KEY,”
    url:"https://www.yelp.ie/search?find_desc=restaurant&find_loc=New+York%2C+NY%2C+United+States&ns=1"
}

const response = await got('https://api.webscrapingapi.com/v1', {searchParams: params})


const {document} = new JSDOM(response.body).window

const competitors = document.querySelectorAll('.container__09f24__sxa9-')

console.log(competitors)

})()

Certifique-se de substituir a string “YOUR_API_KEY” pela chave API que lhe foi fornecida pelo nosso serviço. Pode encontrá-la na página do painel de controlo.

Ao executar o script, fazemos uma solicitação ao serviço WebScrapingAPI para obter o HTML da página do Yelp. Em seguida, recolhemos todos os elementos da página que contêm informações sobre os nossos concorrentes e registamo-los no ecrã utilizando a função ‘console.log’.

4. Inspecionar a página

Voltemos à página do Yelp e vejamos como podemos selecionar apenas as informações de que precisamos. Clique com o botão direito do rato no nome do primeiro restaurante e clique em «Inspecionar».

Irá aparecer uma nova janela com o código-fonte HTML:

Vamos encontrar todas as informações de que precisamos procurando os elementos HTML que as contêm. Na imagem apresentada acima, podemos ver facilmente que o elemento que contém o nome do restaurante tem uma classe CSS de «css-166la90». Para obter todos os nomes dos nossos concorrentes, temos de selecionar todos os elementos da página com essa classe. Faremos o mesmo com todos os detalhes apresentados anteriormente, como o número de avaliações, o tipo de restaurante, os preços e a localização.

5. Formatação das informações

Vamos agora obter todas as informações de que precisamos a partir da resposta da API resultante. Iremos buscar e formatar o nome do restaurante, a pontuação das avaliações, o tipo de restaurante, a faixa de preços e a localização. Adicione as seguintes linhas de código ao ficheiro «index.js».

competitors.forEach((competitor) => {
    if (competitor) {
        const name = competitor.querySelector('.css-166la90')
        if (name) competitor.name = name.innerHTML

        const reviewScore = competitor.querySelector('.reviewCount__09f24__EUXPN')
        if (reviewScore) competitor.review_score = `${reviewScore.innerHTML}/100`

        const types = competitor.querySelectorAll('.css-1hx6l2b')
        if (types) {
            competitor.types = []
            for (type of types) competitor.types.push(type.innerText)
       }

       const priceRange = competitor.querySelector('.priceRange__09f24__2O6le')
       if (priceRange) competitor.price_range = priceRange.innerHTML

       const locationContainer = competitor.querySelector('.priceCategory__09f24__Ylk7h')
       if (locationContainer) {
	     let location = locationContainer.querySelector('.css-e81eai')
	     competitor.location = location
       }

       results.push(competitor)
    }
})

console.log(results)

No final, teremos uma matriz de objetos, e cada um deles conterá todos os concorrentes na página e os seus dados específicos.

Como pode ver, extrair dados do Yelp utilizando a WebScrapingAPI é bastante fácil. Temos de utilizar uma API de extração para obter o conteúdo HTML, analisar a resposta, obter as informações relevantes de cada elemento da página e adicionar tudo a uma lista.

Conhecer a concorrência sem trabalho extra

Hoje em dia, tentar criar um novo negócio exige muito mais do que ter um ótimo produto. Existem oportunidades infinitas, dependendo do quão criativo você for. Algumas das estratégias mais valiosas às quais os empresários devem prestar atenção são:

  • criar uma presença online de destaque
  • trabalhar para oferecer o máximo valor pelo preço mais baixo
  • ter uma compreensão completa das vantagens da concorrência

Todas estas estratégias podem revelar-se vitais para o seu negócio. É bom saber que os web scrapers oferecem uma enorme ajuda na resolução destes problemas. Adicionar automação ao processo de recolha de dados pode ser o passo mais fácil para melhorar o seu negócio.

Procuramos dar uma ajuda, criando as ferramentas necessárias para este tipo de tarefas. Obrigado por ler até ao fim e lembre-se de que a WebScraping API tem um período de teste gratuito, após o qual os utilizadores passam para o plano gratuito, para que possa testar a API à vontade sem gastar um cêntimo.

Sobre o autor
Robert Sfichi, Desenvolvedor Full-Stack @ WebScrapingAPI
Robert SfichiDesenvolvedor Full-Stack

Robert Sfichi é membro da equipa da WebScrapingAPI, contribuindo para o produto e ajudando a criar soluções fiáveis que apoiam a plataforma e os seus utilizadores.

Comece a construir

Pronto para expandir a sua recolha de dados?

Junte-se a mais de 2.000 empresas que utilizam a WebScrapingAPI para extrair dados da Web à escala empresarial, sem quaisquer custos de infraestrutura.