Google News Scraper

Lightweight scraper for Google News

LLM Mart
0 views 40 listing impressions

Get Google News results as JSON in one line of Node.js. Search any keyword, topic or the top stories, and get back titles, publisher links, sources and publish dates.

import googleNewsScraper from 'google-news-scraper';

const articles = await googleNewsScraper({ searchTerm: "OpenAI", timeframe: "1d" });
// [{ title: "...", link: "https://www.reuters.com/...", source: "Reuters", datetime: "2026-10-14T09:12:00.000Z", time: "3 hours ago", ... }]
  • ⚡ No headless browser. Results come straight from Google News feeds, so a search is a single HTTP request and runs happily on serverless platforms such as Vercel and AWS Lambda.
  • 🔗 Real publisher URLs. Google's redirect links are resolved to the original article on the publisher's site.
  • 🌍 Any language or region. Pass Google's hl/gl/ceid parameters to search local editions.
  • 🧠 Optional full text. Turn on getArticleContent to pull each article's body text, ready for summarisation or LLM pipelines.
  • 🟦 TypeScript types included, and works with both ESM import and CommonJS require.
  • ✅ Checked daily against the live site, so breakages are caught before you notice them.

Good for news monitoring, brand and competitor tracking, market research, trading signals, newsletters and feeding fresh context to AI agents.

"Buy Me A Coffee"


Sponsors 💛

SerpAPI logo

SerpApi - The News Monitoring API. We help you access real-time search engine data via a simple API, which includes news from Google, Bing, and DuckDuckGo.

Want your product in front of developers building with news data? Sponsorship puts your logo here and on the npm page. Sponsor via GitHub Sponsors, or get in touch to talk about placements.


Installation 🔌

# Install via NPM
npm install google-news-scraper
# Install via Yarn
yarn add google-news-scraper

Usage 🕹️

Simply import the package and pass a config object.

import googleNewsScraper from 'google-news-scraper';

// Search
const articles = await googleNewsScraper({ searchTerm: "The Oscars" });

// Top stories in the UK edition
const topStories = await googleNewsScraper({ queryVars: { hl: "en-GB", gl: "GB" } });

// A topic page
const tech = await googleNewsScraper({ baseUrl: "https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB" });

A minimum working example can be found in this repo. Full documentation on the config object can be found below.

Output 📲

The output is an array of JSON objects, with each article following the structure below:

[
    {
        "title":  "Article title",
        "link":  "http://url-to-website.com/path/to/article",
        "image": "",
        "source":  "Name of publication",
        "sourceUrl": "https://url-to-website.com",
        "datetime": "2024-05-13T08:02:22.000Z",
        "time":  "2 hours ago",
        "articleType": "regular"
    }
]

From the project's README.

Comments (0)

Sign in to join the conversation.

No comments yet.