Como raspar notícias do Google usando API e Node.js?

Senior Web Scraping Engineer
news.google.com é provavelmente o melhor lugar para encontrar artigos de notícias! O Google Notícias é uma coleção de notícias em tempo real, verificadas e uma das plataformas mais confiáveis e preferidas pelos usuários da internet.
Pelo mesmo motivo, a raspagem do Google Notícias pode ser usada para coletar os artigos de notícias mais recentes, tópicos em alta e metadados relacionados para análise de dados, pesquisa ou simplesmente leitura de notícias. Se você quiser ir um passo além, a raspagem do Google Notícias também pode ajudá-lo a criar seu próprio aplicativo de notícias personalizado por meio da raspagem da web em tempo real.
Neste post do blog, exploraremos como coletar dados relevantes do Google Notícias usando Node.JS e a API do Google Notícias.
Por que devemos raspar os resultados do Google Notícias?
Independentemente do setor, a raspagem de dados do Google Notícias pode facilitar muito o desenvolvimento de uma organização:
Vamos tomar como exemplo uma empresa do setor de viagens ou hospitalidade. Coletar informações sobre estratégias de viagens, medidas de segurança e tendências do turismo pode ajudar as empresas a prever mudanças nas taxas de ocupação e planejar ações de acordo. Elas também podem usar essas informações para ajustar as estratégias de marketing para torná-las mais eficazes e atrair novos clientes.
Por outro lado, empresas de investimento podem usar notícias financeiras para coletar dados sobre desenvolvimentos de mercado, mudanças regulatórias e previsões econômicas. O uso correto desses dados pode ajudá-las a gerenciar riscos de forma mais eficaz e fornecer aconselhamento mais preciso a seus clientes. Isso pode melhorar o desempenho de sua carteira e a satisfação do cliente.
Que dados o Google News Scraper coleta?

📰 Metadados do artigo
- Títulos: O título do artigo de notícias.
- Fonte: A editora ou agência de notícias (por exemplo, BBC, CNN).
- Data de publicação: Quando o artigo foi publicado.
- Autor: O nome do jornalista ou colaborador.
- Resumo/Snippet: Uma breve descrição ou extrato do artigo.
- URL: O link para o artigo completo.
✍️ Dados de conteúdo
- Texto completo: O corpo principal do artigo de notícias (requer acesso ao site de origem).
- Imagens/Mídia: Imagens, vídeos ou outras mídias incorporadas ao artigo.
- Palavras-chave/Tópicos: Tags ou categorias associadas ao artigo (por exemplo, "Política", "Tecnologia").
📊 Dados de tendências e popularidade
- Tópicos em alta: Tópicos ou histórias populares atuais no Google Notícias.
- Principais histórias: Artigos destacados como principais notícias para uma categoria ou região específica.
- Tendências de pesquisa: Termos de pesquisa populares relacionados a tópicos de notícias.
🧭 Dados geográficos e demográficos
- Notícias baseadas em localização: Artigos de notícias adaptados a regiões ou países específicos.
- Idioma: O idioma em que o artigo está escrito.
🧐 Análises e insights
- Análise de sentimento: O tom ou sentimento do artigo (positivo, negativo, neutro).
- Agrupamento de tópicos: Agrupamento de artigos por temas ou assuntos semelhantes.
- Análise temporal: Acompanhamento da evolução das notícias ao longo do tempo.
Crie seu Google News Scraper usando Node.js | Passo a passo
Preparação do ambiente
Precisamos importar as seguintes bibliotecas para o projeto Node.
JavaScript
const axios = require('axios');
const fs = require('fs');
Agora, vamos criar uma função para obter alguns resultados do Google Notícias:
JavaScript
async function getNewsData() {
const headers = {
"User-Agent":
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36",
};
try {
const response = await axios.get(
"https://news.google.com/home?hl=en-US&gl=US",
{ headers }
);
const html = response.data;
} catch (error) {
console.error("Error:", error.message);
}
}
Agora, definimos o User-Agent do Header, o que nos permite acessar o Google naturalmente. Em seguida, usamos a biblioteca de solicitação para fazer uma solicitação.
Agora, precisamos encontrar os dados necessários nos dados retornados.

Se você pesquisar na consulta, poderá descobrir que cada resultado ou notícia existe na página. Portanto, precisamos usar expressões regulares para corresponder aos dados necessários e, em seguida, processá-los.
JavaScript
const regex = /data:(\[.*?\]), sideChannel/s;
const match = html.match(regex);
Raspar dados do Google Notícias
As informações específicas no grupo de dados extraído são armazenadas na forma de uma matriz. Neste momento, você precisa comparar as informações específicas na página e filtrar o índice correspondente aos dados específicos.
JavaScript
let resp = [];
const data = JSON.parse(match[1]);
for (const section of data[1][3][1]) {
if (Array.isArray(section[0])) {
for (const item of section[0]) {
const utcTime = new Date(item[4][0] * 1000).toISOString();
console.log(utcTime)
resp.push({
title: item[2],
source: {
name: item[10][2],
icon: item[10][22]?.[0] || null,
authors: item[item.length - 1]?.[0] || []
},
link: item[38],
thumbnail: item[8]?.[0]?.[13] || null,
thumbnail_small: item[8]?.[0]?.[0] || null,
date: utcTime
});
break;
}
}
}
Finalmente, extraímos todos os dados que precisamos.
Código completo
JavaScript
const axios = require('axios');
const fs = require('fs');
async function getNewsData() {
const headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/101.0.4951.54 Safari/537.36"
};
try {
const response = await axios.get("https://news.google.com/home?hl=en-US&gl=US", { headers });
const html = response.data;
const regex = /data:(\[.*?\]), sideChannel/s;
const match = html.match(regex);
if (!match || !match[0]) {
throw new Error('No valid JSON data found');
}
let resp = [];
const data = JSON.parse(match[1]);
for (const section of data[1][3][1]) {
if (Array.isArray(section[0])) {
for (const item of section[0]) {
const utcTime = new Date(item[4][0] * 1000).toISOString();
resp.push({
title: item[2],
source: {
name: item[10][2],
icon: item[10][22]?.[0] || null, // Safe access to nested properties
authors: item[item.length - 1]?.[0] || []
},
link: item[38],
thumbnail: item[8]?.[0]?.[13] || null,
thumbnail_small: item[8]?.[0]?.[0] || null,
date: utcTime
});
break;
}
}
}
return resp;
} catch (error) {
console.error('Error:', error.message);
}
}
// Execute function
getNewsData().then(data => {
console.log(data);
});
Resultados da raspagem
Agora, vamos visualizar os resultados do código em execução no terminal:

No entanto, para salvar os dados em um local mais seguro, precisamos fazer algumas otimizações:
JavaScript
const fs = require('fs');
fs.writeFileSync('data.json', JSON.stringify(resp, null, 2), 'utf8');
O conteúdo do arquivo final é o seguinte:

Raspe facilmente o Google Notícias com Scrapeless Deep SerpApi

Nossa API do Google Notícias permite que você raspe resultados das páginas de pesquisa do Google Notícias. A API é acessível por meio do seguinte endpoint: "engine": "google_news"
. Você pode usar o APIDog para completar a raspagem de dados em https://apidocs.scrapeless.com/api-14581677. Alternativamente, uma maneira mais rápida é assistir a uma demonstração interativa ao vivo diretamente usando o Scrapeless Deep SerpApi Playground.
Por que devemos usar a API?
- Não há necessidade de criar um analisador do zero e mantê-lo.
- Ignora o bloqueio do Google: pode resolver automaticamente anti-bots ou resolver bloqueio de IP.
- Não há necessidade de pagar adicionalmente por proxies e desbloqueadores da web.
- Não há necessidade de usar automação de navegador.
A API do Google Notícias Scrapeless pode facilmente lidar com todos os problemas acima, com um curto tempo de resposta de ~2,33
segundos por solicitação (~1,47
segundos é incrivelmente rápido). Os usuários precisam apenas de uma chamada de API para obter dados raspados precisos, que exibimos usando JSON bem estruturado.
Junte-se à nossa comunidade e obtenha o uso gratuito de 500K!
Passos de uso
- Passo 1. Faça login no Scrapeless Playground.
- Passo 2. Encontre o ator Google Notícias e clique.
- Passo 3. Configure os parâmetros de consulta.
- Passo 4. Clique em Iniciar pesquisa e obtenha os resultados.

Leitura adicional
- Como raspar os resultados da pesquisa do Google?
- Como raspar tendências do Google?
- Como raspar dados públicos do Google Maps?
- Como raspar empregos do Google?
- Como raspar o Google Acadêmico?
- Como raspar o Google Shopping?
- Como raspar voos do Google?
Conclusões
Este artigo discute dois métodos para raspar o Google Notícias usando Node.js. Coletores de dados que desejam ter ferramentas de raspagem independentes e desejam manter alguma flexibilidade ao raspar dados podem usar Node.js como alternativa para interagir com páginas da web. Siga nossas etapas para criar facilmente seu raspador.
Além disso, a API do Google Notícias é uma solução simples que pode extrair e limpar rapidamente os dados brutos obtidos da página da web e apresentá-los em um formato JSON estruturado. Somente a configuração simples de parâmetros é necessária para concluir rapidamente a coleta de dados.
Experimente gratuitamente agora!
FAQs
É legal raspar o Google Notícias?
Sim, é legal raspar o Google Notícias, pois são informações públicas. No entanto, você deve estar ciente das leis locais e regionais sobre direitos autorais e dados pessoais.
O Google remove conteúdo ilegal?
Sim. Normalmente, o Google remove ou restringe o acesso ao conteúdo apenas no país/região onde é considerado ilegal.
O Google bloqueia raspadores da web?
Os termos e condições do Google proíbem claramente a raspagem de seus serviços, incluindo resultados de pesquisa. Violar esses termos pode levar os serviços do Google a bloquear seu endereço IP. Como resultado, você pode ter que equipar uma solução de desbloqueador da web poderosa.
Na Scorretless, acessamos apenas dados disponíveis ao público, enquanto cumprem estritamente as leis, regulamentos e políticas de privacidade do site aplicáveis. O conteúdo deste blog é apenas para fins de demonstração e não envolve atividades ilegais ou infratoras. Não temos garantias e negamos toda a responsabilidade pelo uso de informações deste blog ou links de terceiros. Antes de se envolver em qualquer atividade de raspagem, consulte seu consultor jurídico e revise os termos de serviço do site de destino ou obtenha as permissões necessárias.