O Google Notícias é uma ferramenta excelente para encontrar notícias em tempo real e verificar informações. É uma das plataformas mais populares e confiáveis para usuários da internet. Extrair dados do Google Notícias, também conhecido como Scraping Google News, pode ser útil para coletar artigos recentes, identificar tópicos populares e obter metadados para análise de dados, pesquisa ou leitura de notícias. Além disso, pode ajudar a criar aplicativos de notícias personalizados com informações em tempo real.
Por que usar Scraping Google News?
Coletar dados do Google Notícias pode beneficiar empresas de diversos setores. Por exemplo, empresas de turismo podem usar essas informações para prever mudanças nas taxas de ocupação e ajustar suas estratégias de marketing, atraindo novos clientes com base em tendências de viagens e medidas de segurança.
Já as empresas de investimento podem analisar notícias financeiras para monitorar o mercado, mudanças regulatórias e previsões econômicas. O uso correto desses dados ajuda a gerenciar riscos e oferecer consultoria mais precisa aos clientes, melhorando o desempenho do portfólio e a satisfação do cliente.
Quais dados o Scraping Google News coleta?
O Scraping Google News pode coletar diversos tipos de dados, que podem ser divididos em categorias:
-
Metadados do Artigo
- Manchetes: Títulos dos artigos.
- Fonte: Editora ou veículo de notícias (ex: BBC, CNN).
- Data de Publicação: Data em que o artigo foi publicado.
- Autor: Nome do jornalista ou colaborador.
- Resumo/Snippet: Breve descrição do artigo.
- URL: Link para o artigo completo.
-
Dados de Conteúdo
- Texto Completo: Corpo principal do artigo (requer acesso ao site da fonte).
- Imagens/Mídia: Imagens, vídeos ou outros elementos de mídia incorporados no artigo.
- Palavras-chave/Tópicos: Tags ou categorias associadas ao artigo (ex: “Política”, “Tecnologia”).
-
Dados de Tendências e Popularidade
- Tópicos Populares: Temas ou notícias populares no momento.
- Principais Notícias: Artigos em destaque em uma categoria ou região específica.
- Tendências de Busca: Termos de pesquisa populares relacionados a notícias.
-
Dados Geográficos e Demográficos
- Notícias por Localização: Artigos direcionados a regiões ou países específicos.
- Idioma: Idioma em que o artigo foi escrito.
-
Análises e Insights
- Análise de Sentimento: Tom do artigo (positivo, negativo, neutro).
- Agrupamento de Tópicos: Artigos agrupados por temas similares.
- Análise Temporal: Rastreamento da evolução das notícias ao longo do tempo.
Como construir seu scraper do Google Notícias com Node.js
Preparação do ambiente
Para começar, você precisa importar as seguintes bibliotecas para o seu projeto Node.js:
const axios = require('axios');
const fs = require('fs');
Em seguida, crie uma função para coletar os dados do Google Notícias:
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);
}
}
Aqui, definimos o User-Agent do cabeçalho para acessar o Google Notícias de forma natural e usamos a biblioteca axios para fazer a requisição.
O próximo passo é encontrar os dados necessários nas informações retornadas. Cada notícia é armazenada na página, então precisamos usar expressões regulares para identificar e processar esses dados.
const regex = /data:(\[.*?)], sideChannel/s;
const match = html.match(regex);
Extraindo os dados do Google Notícias
As informações específicas são armazenadas em um array. Compare as informações na página e filtre o subscrito correspondente aos dados desejados.
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;
}
}
}
Com isso, extraímos todos os dados necessários.
Código completo
A seguir, o código completo para Scraping Google News:
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 do crawling
Ao executar o código no terminal, você verá os resultados da extração de dados. Para salvar os dados de forma mais segura, podemos otimizar o código:
const fs = require('fs');
fs.writeFileSync('data.json', JSON.stringify(resp, null, 2), 'utf8');
Isso salvará os dados em um arquivo JSON.
Scraping simplificado com Scrapeless Deep SerpApi
O Google News API permite extrair resultados das páginas de busca do Google Notícias através do endpoint: "engine": "google_news"
. Você pode usar APIDog para completar a extração de dados ou utilizar o Scrapeless Deep SerpApi Playground para uma demonstração interativa.
Por que usar uma API?
- Não precisa criar um parser do zero e mantê-lo.
- Evita bloqueios do Google, resolvendo automaticamente problemas de anti-bot ou bloqueio de IP.
- Não precisa pagar por proxies e desbloqueadores da web.
- Não precisa usar automação do navegador.
O Scrapeless Google News API lida com todos esses problemas, com um tempo de resposta de cerca de 2.33 segundos por requisição. Os usuários precisam apenas de uma chamada de API para obter dados estruturados em formato JSON.
Passos para usar a API
- Passo 1: Acesse o Scrapeless Playground.
- Passo 2: Encontre o ator Google News e clique.
- Passo 3: Configure os parâmetros da consulta.
- Passo 4: Clique em Start Search e obtenha os resultados.
O MacBook Air M4 é um lançamento que promete um desempenho superior, assim como a extração de dados do Google, que pode otimizar diversos processos. Para saber mais, você pode conferir novo MacBook Air M4: 6 Informações Importantes.
Com a crescente importância das criptomoedas, entender as notícias e tendências é crucial. A extração de dados do Google Notícias pode ajudar investidores a monitorar o mercado, assim como a acompanhar a Cúpula de Criptomoedas da Casa Branca.
A extração de dados também pode ser utilizada para monitorar lançamentos e novidades de diversas empresas de tecnologia. Assim como foi anunciado que o desenvolvimento do Xiaomi HyperOS 2.2 avança discretamente.
Para quem gosta de jogos, a extração de dados pode auxiliar a identificar tendências e novidades. Assim como a informação de que GeForce NOW adiciona novos jogos como Monster Hunter Wilds e FragPunk.
Estar atualizado sobre as últimas notícias de tecnologia é fundamental, seja para acompanhar lançamentos de produtos como o Desempenho do Galaxy A56 ou para entender as tendências do mercado.
Este artigo apresentou duas formas de realizar Scraping Google News usando Node.js. Desenvolvedores que desejam ferramentas de extração independentes e flexíveis podem usar Node.js para interagir com páginas da web. Siga os passos para construir seu próprio scraper.
Além disso, o Google News API é uma solução simples para extrair e organizar dados brutos da web em formato JSON estruturado. Com uma configuração simples, é possível completar a coleta de dados rapidamente.
Perguntas frequentes
É legal fazer scraping do Google Notícias?
Sim, é legal fazer scraping do Google Notícias, pois são informações públicas. No entanto, é importante estar ciente das leis locais sobre direitos autorais e dados pessoais.
O Google remove conteúdo ilegal?
Sim. O Google geralmente remove ou restringe o acesso a conteúdos considerados ilegais no país ou região onde essa determinação é feita.
O Google bloqueia web scrapers?
Os termos e condições do Google proíbem a extração de dados de seus serviços, incluindo resultados de busca. Violar esses termos pode levar ao bloqueio do seu endereço IP, sendo necessário o uso de soluções de desbloqueio.
Este conteúdo foi auxiliado por Inteligência Artificial, mas escrito e revisado por um humano.
Via dev.to