Google News Scraper – Headlines, Real Article URLs & Full Text avatar

Google News Scraper – Headlines, Real Article URLs & Full Text

Pricing

$2.00 / 1,000 article delivereds

Go to Apify Store
Google News Scraper – Headlines, Real Article URLs & Full Text

Google News Scraper – Headlines, Real Article URLs & Full Text

Scrape Google News headlines by search query, topic or top stories with the real publisher URL decoded (not a news.google.com redirect), optional full article text, source, date and snippet. Any language and country, Google search operators, no API key, no proxy, pay per article.

Pricing

$2.00 / 1,000 article delivereds

Rating

0.0

(0)

Developer

Ani Björkström

Ani Björkström

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape Google News by search query, topic section or top stories and get clean, flat rows with the headline, publisher, publish time, snippet and — the part most Google News scrapers skip — the real article URL, decoded from Google's news.google.com/rss/articles/... redirect. Turn on full article text and the actor also visits each publisher page and extracts the body, author, description and lead image.

Three things set this Google News scraper apart from other ways to scrape Google News:

  • Real publisher URLs, not Google redirects. Every row carries url (the decoded article link) next to googleUrl, with an honest urlDecoded flag. Decoding runs concurrently and is cached across runs.
  • No API key, no proxy, no browser. It reads Google News' own feeds directly, so it starts in seconds and a run of 100 headlines finishes in well under a minute.
  • Pay only for delivered articles. One event per article row. Failed queries cost nothing.

Works for any Google News edition (en/US, en/GB, sv/SE, de/DE, pt-BR/BR…) and supports Google's search operators — when:24h, site:reuters.com, "exact phrase", -exclude, allintitle:, after: / before: — so it doubles as a free Google News API alternative for news monitoring, brand-mention tracking and LLM/RAG ingestion.

What you get

Each Google News scraper run gives one row per article. Flat JSON, stable camelCase names, ISO 8601 UTC dates — ready for spreadsheets, databases, n8n/Make/Zapier and AI agents alike.

FieldDescription
titleHeadline, with Google's - Publisher suffix removed
source, sourceUrlPublisher name and homepage, e.g. Reuters, https://www.reuters.com
urlReal article URL on the publisher's site (decoded)
googleUrlThe original news.google.com/rss/articles/... link
urlDecodedtrue when url is the real link; false means url still points at Google
publishedAtISO 8601 UTC, e.g. 2026-09-22T14:33:05Z
snippetText of Google's item description (Google News snippets are short — usually the headline)
relatedTitlesHeadlines of the related coverage Google groups under this story (top stories / topics)
query, topicWhich search query or topic section produced the row
language, countryThe Google News edition used
scrapedAtWhen the run collected it

With Fetch full article text switched on, each row also has:

FieldDescription
articleTextMain body text, readability-style extraction (navigation, footers and scripts removed)
articleTitle, articleDescriptionPublisher's own title and og:description
authorFrom meta tags or JSON-LD
imageUrlog:image lead image
wordCountWords in articleText
articleErrornull on success, otherwise why the text is missing (paywall, HTTP 403, timeout…)

A query that returns nothing produces a single row with an error field explaining why, so a monitoring schedule can tell "no news today" from "something broke".

Input

Run the Google News scraper with no input at all and it scrapes the past week of "artificial intelligence" news in the US edition. A realistic input:

{
"queries": ["NVIDIA earnings", "\"Federal Reserve\" site:reuters.com", "Riksbanken -sport"],
"topics": ["business", "technology"],
"language": "en",
"country": "US",
"timeRange": "7d",
"maxItemsPerQuery": 100,
"decodeUrls": true,
"fetchArticleContent": false
}
FieldDefaultNotes
queries["artificial intelligence"]One Google News search per entry. Operators below all work.
topics[]Any of top, world, nation, business, technology, entertainment, science, sports, health. Clear queries to scrape topics only.
language / countryen / USThe Google News edition. sv + SE gives Swedish news, de + DE German, en + IN Indian English.
timeRange7dany, 1h, 24h, 7d, 30d or custom. Applies to queries; topic sections always show the current front page.
dateFrom / dateTo–YYYY-MM-DD, used with timeRange: "custom".
maxItemsPerQuery100Google serves about 100 items per feed at most.
decodeUrlstrueResolve real publisher URLs. Off = fastest headlines-only run.
fetchArticleContentfalseFetch and extract the article body from each decoded URL.
concurrency5Parallel feeds and article fetches.
proxyConfigurationoffNot needed for normal volumes.

Search operators that work in queries

ExampleWhat it does
Tesla when:24hOnly the past 24 hours (1h, 7d, 30d also work; overrides timeRange)
"interest rate decision"Exact phrase
Apple -iPhoneExclude a word
site:reuters.com NvidiaOne publisher only
allintitle: earnings callAll words must be in the headline
ECB after:2026-09-01 before:2026-09-15Custom date window
Riksbanken OR RiksbankEither term

Locale examples

{ "queries": ["Riksbanken", "Volvo Cars"], "language": "sv", "country": "SE" }
{ "queries": ["Bundesbank", "DAX"], "language": "de", "country": "DE" }
{ "topics": ["top", "business"], "language": "en", "country": "GB" }

Use cases

  • PR and communications teams — media monitoring for your brand, executives and campaigns; schedule it hourly with when:1h and push new mentions to Slack.
  • Investors, analysts and FP&A teams — a financial news scraper for the companies in your model: earnings, guidance, M&A, central-bank decisions, with the real article link for the audit trail. (If you use AI in finance work, the Ani Björkström | AI for Finance YouTube channel covers workflows like this.)
  • Competitive intelligence — competitor news alerts: one query per competitor, deduplicated by real URL.
  • SEO and content teams — newsjacking: see what is breaking in your niche in the past hour and who is covering it.
  • Researchers and journalists — collect coverage of a topic across languages and countries into one CSV.
  • AI agents, RAG and LLM pipelines — fetch full text into a vector store or summarise the day's coverage. Flat rows and an MCP-ready API make this easy to call from an agent.
  • Automation builders — a Google News scraper that turns Google News RSS into JSON for n8n, Make and Zapier, without an RSS parser step or the redirect-link problem.

Pricing

Pay per event: you are charged for each article row delivered to the dataset. Error rows are free, queries that return nothing are free, and duplicates across queries are removed before charging. No actor-start fee. For price, see the Pricing tab; a run of 100 headlines with real URLs costs a fraction of a cent.

Integrations

The Google News scraper runs on a schedule and connects to Zapier, Make, n8n, Slack, Google Sheets, Airtable, webhooks and the Apify API. Use it from Python or JavaScript, curl, or as a tool in an AI agent through the Apify MCP server.

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("nourishing_courier/google-news-scraper").call(run_input={
"queries": ["NVIDIA earnings", "Microsoft Copilot"],
"timeRange": "24h",
"fetchArticleContent": True,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
print(row["publishedAt"], row["source"], row["title"], row["url"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('nourishing_courier/google-news-scraper').call({
topics: ['business'],
language: 'en',
country: 'GB',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((a) => `${a.source}: ${a.title} -> ${a.url}`));

curl

curl -X POST "https://api.apify.com/v2/acts/nourishing_courier~google-news-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"queries": ["Riksbanken"], "language": "sv", "country": "SE", "timeRange": "24h"}'

n8n / Make / Zapier — add the Apify node, pick this actor, paste the JSON input above and map the dataset rows to Slack, Google Sheets, Notion or your CRM. Because url is the real article link, the "open article" step in your workflow just works.

MCP / AI agents — expose the actor through the Apify MCP server and an agent can call it with a plain request such as "what did the press write about Riksbanken in the past 24 hours?".

Limits and fair use

  • About 100 items per feed. That is Google News' ceiling for any Google News scraper per query or topic, not a setting. To collect more, split the topic into several queries or several time windows (when:24h runs on a schedule).
  • Snippets are short. Google News RSS gives the headline and a list of related headlines, not a summary. For body text switch on fetchArticleContent.
  • Article text depends on the publisher. Paywalled and bot-protected sites (Bloomberg, the FT, some Seeking Alpha pages) return HTTP 403 or an empty body; those rows keep their headline and URL and carry an articleError. Across mainstream outlets, most rows come back with full text.
  • URL decoding uses Google's own resolver. Very large runs (thousands of ids in minutes) may get rate-limited; the actor retries with backoff and, if an id still cannot be decoded, keeps the Google link and sets urlDecoded: false rather than dropping the row.
  • Legality. Headlines, links and metadata are public data published by Google News for syndication. Respect the publishers' terms when storing full article text, and do not republish it wholesale.

FAQ

Can I scrape Google News without an API key?

Yes. Google offers no official Google News API; this Google News scraper reads Google News' public feeds directly, so no key, login, proxy or browser is required.

How do I get the real article URL instead of a news.google.com link?

It is on by default (decodeUrls: true). The url field is the publisher's actual page; googleUrl keeps the redirect and urlDecoded tells you which one you are looking at.

How many results do I get per query?

Up to about 100 per query or topic — Google's limit. Run several queries, narrower time windows or a schedule to build a larger archive; duplicates are removed by real URL.

Does it return full article text?

Optionally. Set fetchArticleContent: true and each row gets articleText, author, imageUrl, articleDescription and wordCount. Publishers that block bots or require a subscription return an articleError instead.

Can I filter by date or the past hour?

Yes: timeRange (1h, 24h, 7d, 30d), a custom dateFrom/dateTo window, or Google's own when: / after: / before: operators inside the query.

Does it work for non-English Google News editions?

Yes. Set language and country to any Google News edition: sv/SE, de/DE, fr/FR, ja/JP, pt-BR/BR, en/IN and so on. Topic sections follow the edition too.

Can I scrape Google News top stories or a section like Business?

Yes — put top, business, technology, world, nation, science, sports, health or entertainment in topics.

Does it work with n8n, Make or Zapier?

Yes. Use the Apify integration in any of them, or call the run-sync endpoint shown above and consume the JSON.

How much does a Google News scrape cost?

You pay per article delivered, nothing for failed queries or error rows. A 100-headline run is a fraction of a cent; see the Pricing tab for the exact per-article rate.

Collecting public headlines, links and publication metadata is generally fine. Full article text belongs to the publishers — use it for analysis, summaries and internal search, and respect their terms of use.