Voltar ao blogue
Casos de utilização
Robert Sfichi12 de agosto de 20217 min de leitura

Como utilizar a WebScrapingAPI para recolher dados do Yelp

Como utilizar a WebScrapingAPI para recolher dados do Yelp

Porque é que deve recolher dados da concorrência

Investigar os preços dos produtos da concorrência, supervisionar a sua linha de produtos e categorias ou analisar a sua estratégia nas redes sociais são apenas três das tácticas mais valiosas que pode utilizar para melhorar a sua empresa.

Encontrar e comparar preços de produtos não é uma tarefa muito difícil, mas consome muito tempo. A utilização de uma ferramenta de recolha de dados da Web pode ajudá-lo a obter automaticamente informações actualizadas sobre a estratégia de preços e as vendas rápidas dos seus concorrentes.

Analisar 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á na moda na sua cidade, pelo que pode fazer ajustes no seu menu para aumentar as vendas.

As redes sociais não são úteis apenas para reforçar a ligação 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 encontrar facilmente respostas a perguntas como "Quantas vezes publicam por semana?" ou "Que recursos visuais mantêm o envolvimento a um nível elevado?", apenas com uma recolha de dados.

Porque é que o Yelp é o local ideal para recolher dados da concorrência

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

O que é ainda melhor é que pode diminuir o tempo que gasta a analisar a concorrência utilizando uma ferramenta de recolha de dados da Web e concentrar-se mais na construção de um negócio melhor. Esta estratégia será compensada a longo prazo, uma vez que a automatização do processo de recolha de dados pode tornar-se numa das tarefas mais aborrecidas e morosas.

Como utilizar a WebScrapingAPI para extrair dados do Yelp

Na secção seguinte, vamos utilizar o Node.js e algumas bibliotecas como got e jsdom para criar o script que irá obter todos os dados de uma página do Yelp e formatá-los de forma a serem o mais compreensíveis possível. Vamos ver como todas as informações apresentadas acima podem ser convertidas em resultados tangíveis:

1. Encontrar 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 revisões
  • Tipo de restaurante
  • Preços
  • Localização
Página de resultados de pesquisa do Yelp com listagens de restaurantes e um mapa interativo da cidade de Nova Iorque

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 scraping em conjunto com o artigo se iniciar a sua avaliação gratuita com 5000 pedidos e acesso a todas as funcionalidades para testar o nosso produto. Pode utilizar qualquer ferramenta de recolha de dados com que se sinta mais confortável. Saiba apenas que, a partir daqui, o tutorial centrar-se-á em como obter os resultados utilizando o WebScrapingAPI.

Depois de criar uma conta gratuita, aceda à página do API Playground clicando no botão "Usar API Playground" na página Dashboard. A página deve ter a seguinte aparência:

Área de testes da API WebScrapingAPI, apresentando opções de solicitação e um exemplo de código curl gerado com o botão «Copiar»

Tal como o nome sugere, este é o local onde podemos testar a ferramenta de recolha de dados antes de criar o nosso script. Vamos copiar o URL apresentado acima na entrada de URL (coluna da esquerda), rolar um pouco para baixo e clicar no botão "Send API Request" (Enviar pedido de API). Essa ação deve retornar um resultado parecido com este:

Área de testes da API WebScrapingAPI que mostra o resultado em HTML de uma pesquisa no Yelp

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

2. Criação do projeto

Crie a pasta do projeto, abra uma janela de terminal e navegue até ela. Tal como dissemos anteriormente, vamos usar 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 um pedido

Vamos definir os parâmetros, fazer o pedido e analisar o HTML. Escreva as seguintes linhas no ficheiro 'index.js' recentemente 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 que substitui a cadeia "YOUR_API_KEY" pela chave da API que lhe foi fornecida pelo nosso serviço. Pode encontrá-la na página do painel de controlo.

Ao executar o script, fazemos um pedido 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. Inspeção da página

Vamos voltar à página do Yelp e descobrir como podemos selecionar apenas as informações de que necessitamos. Clique com o botão direito do rato no nome do primeiro restaurante e clique em "Inspecionar".

Aparecerá uma nova janela com o código fonte HTML:

Página de resultados de pesquisa do Yelp com o Chrome DevTools a destacar o elemento HTML de um link para a ficha de um restaurante

Vamos encontrar toda a informação de que precisamos procurando os elementos HTML que a 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 os nomes de todos os nossos concorrentes, temos de selecionar todos os elementos da página com essa classe. Faremos o mesmo com todos os pormenores apresentados anteriormente, como o número de críticas, o tipo de restaurante, os preços e a localização.

5. Formatação das informações

Agora vamos obter todas as informações de que precisamos da resposta da API resultante. Vamos buscar e formatar o nome do restaurante, a pontuação da avaliação, o tipo de restaurante, a faixa de preço 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 um conjunto de objectos, e cada um deles conterá todos os concorrentes da página e os seus dados específicos.

Como pode ver, a recolha de dados do Yelp utilizando a WebScrapingAPI é bastante fácil. Temos de utilizar uma API de recolha de dados 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 sua concorrência sem qualquer trabalho adicional

Tentar criar um novo negócio hoje em dia exige muito mais do que ter um ótimo produto. As oportunidades são infinitas, dependendo da criatividade de cada um. Algumas das estratégias mais valiosas a que os empresários devem prestar atenção são:

  • criar uma presença em linha excecional
  • trabalhar para oferecer o maior valor pelo menor preço
  • ter um conhecimento completo das vantagens da concorrência

Todas estas estratégias podem revelar-se vitais para a atividade de uma pessoa. É bom saber que os scrapers da Web oferecem uma grande ajuda para resolver estes problemas. Adicionar automação ao processo de recolha de dados pode ser o passo mais fácil para melhorar o seu negócio.

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

Sobre o autor
Robert Sfichi, Desenvolvedor Full-Stack na 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.