Google News Scraper — Decoded Article URLs, Any Edition avatar

Google News Scraper — Decoded Article URLs, Any Edition

Pricing

$1.50 / 1,000 article scrapeds

Go to Apify Store
Google News Scraper — Decoded Article URLs, Any Edition

Google News Scraper — Decoded Article URLs, Any Edition

Scrape Google News search, topic and top-stories feeds into rows: headline, publisher, publish date, related coverage — and the REAL article URL, decoded out of Google's redirector instead of the useless news.google.com link. 100+ editions. No API key.

Pricing

$1.50 / 1,000 article scrapeds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

📰 Google News Scraper — with the REAL article URLs, not Google's redirector

Scrape Google News search results, topic sections and top stories into clean rows — and get the publisher's actual article URL on every row, decoded out of the news.google.com/rss/articles/CBMi… redirector that every other Google News feed hands you.

No API key. No login. No browser. Works on every Google News edition (US, UK, India, Germany, Brazil, Japan…).


🔗 Why the decoded URL is the whole point

A raw Google News feed gives you links like:

https://news.google.com/rss/articles/CBMiaEFVX3lxTE9mQWFjYmw4NHEyTFlGWjE4UTBmdFhISmIwMlk5N0d3…

That link is useless downstream. You cannot dedupe by domain, you cannot fetch the full text, you cannot check it against a paywall list, you cannot hand it to a client. Following it does not help either — it serves a 592 KB JavaScript shim whose rel=canonical points back at itself.

This actor resolves it to the real thing:

https://www.cnbc.com/2026/09/01/ai-token-prices-lows.html

Measured on a live validation run of 442 articles: 442/442 URLs decoded (100%), and 442/442 of the decoded hostnames matched the publisher hostname the feed itself declared — so the decode is verified against an independent signal, not just "it returned a string".

URL decoding is included in the per-article price. It is not an add-on event.


✅ What you get on every row

  • 📰 title — the headline, with the " - Publisher" suffix stripped off
  • 🏷️ source + sourcePublisherUrl — the outlet's name and home page
  • 🔗 articleUrlthe decoded publisher URL (the reason this actor exists)
  • 🧭 googleNewsUrl + articleId — the original link and Google's stable article id
  • 🕒 publishedAt — ISO 8601 timestamp (plus the raw RFC-822 string)
  • 🗞️ relatedArticles — other outlets covering the same story, from Google's own cluster
  • 🌍 country / language — which edition the row came from
  • 🧾 feedType / feedQuery / feedSection / positionInFeed — full provenance
  • ✔️ urlDecoded / decodeStatus — never guess whether a link is real

Measured field fill (442 articles, 8 feeds, 2 editions, 2026-09-02)

FieldFill
articleId, title, titleWithSource, source, sourcePublisherUrl100%
articleUrl, urlDecoded, decodeStatus, googleNewsUrl100%
publishedAt, publishedRaw100%
feedType, feedUrl, country, language, positionInFeed, scrapedAt100%
relatedArticles36.9% (163 rows, 610 related links)

relatedArticles is not missing data — Google only builds a coverage cluster on its section / topic / top-stories feeds. On the run above, related coverage appeared on 97 section rows and 66 top-stories rows, and on 0 keyword-search rows, because keyword search feeds do not carry one.

Honest note: Google News RSS carries no article summary. The <description> element only repeats the headline and the publisher name. Rather than ship a "snippet" field that just duplicates the title, this actor ships the structured related-coverage cluster instead.


🚀 How to use it

A daily brief with no keywords

{ "sections": ["TOP", "BUSINESS", "TECHNOLOGY"], "countries": ["US"], "maxItems": 150 }

Media monitoring for a brand, past 24 hours

{
"queries": ["\"Acme Corp\"", "Acme recall"],
"when": "1d",
"excludeSites": ["yahoo.com"],
"maxItems": 200
}

The same story across five editions

{
"queries": ["interest rates"],
"countries": ["US", "GB", "IN", "CA", "AU"],
"language": "en-US",
"maxItems": 500
}

Just paste a Google News URL

{ "newsUrls": ["https://news.google.com/topics/CAAqJggKIiBDQkFTRWdvSUwyMHZNRGRqTVhZU0FtVnVHZ0pWVXlnQVAB"] }

Search, /topics/…, /headlines/section/…, the home page and existing /rss/… URLs are all accepted and converted to the right feed automatically.

Run it with nothing at all

An empty input returns Google News top stories for the US edition. It never errors out with "nothing to scrape".


🔎 Google News search operators all work

Anything you can type into Google News search goes straight through queries:

OperatorExampleMeasured result
Exact phrase"electric vehicle" tesla100 articles
ORtesla OR rivian100 articles
Single sitesite:reuters.com tesla100 articles
Multiple sites(site:reuters.com OR site:bbc.co.uk) tesla100 articles
Exclude a sitetesla -site:yahoo.com100 articles
Headline onlyintitle:tesla100 articles
Time windowtesla when:1h6 articles

includeSites, excludeSites and when build these for you if you would rather not write them by hand.


📈 Getting more than 100 articles

Google News RSS returns at most ~100 articles per feed and has no page parameter. No scraper can change that — anyone claiming deep pagination on a single query is not reading the same feed.

What actually works, and what this actor is built for, is fan-out:

  • more queries — each is its own feed
  • more countries["US","GB","IN","CA","AU"] runs every query once per edition
  • narrower time windowswhen: "1d" run daily beats one when: "7d" run weekly
  • site: slices — split one broad query into one query per publisher

Measured: 8 feeds across 2 editions returned 322 unique articles in a single run.


💰 Pricing

ModelPay per event
article-scraped$0.0015 per article
Decoded publisher URLincluded
Related coverageincluded
Actor startnot charged

You are charged for articles delivered to your dataset, and the charge happens as each batch is pushed — so if you set a spend limit, the run stops cleanly at it instead of handing you rows you already paid for. Duplicate articles across feeds are removed before they are charged.

1,000 articles ≈ $1.50.


⚙️ Input reference

FieldTypeDefaultWhat it does
queriesarray[]Keywords to search. Supports Google News operators.
sectionsarray[]TOP, WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH.
newsUrlsarray[]Any news.google.com URL, converted to its feed.
languagestringen-USGoogle News hl value.
countriesarray["US"]Google News gl values — one run per country.
whenenumany1h, 12h, 1d, 7d, 30d, 1y. Applies to queries.
includeSitesarray[]Restrict queries to these publisher domains.
excludeSitesarray[]Drop these publisher domains from queries.
decodeArticleUrlsbooleantrueResolve the real publisher URL.
includeRelatedArticlesbooleantrueShip the coverage cluster.
maxItemsinteger200Total cap. 0 = unlimited.
maxItemsPerFeedinteger100Per-feed cap.
proxyConfigurationobjectno proxyOptional Apify Proxy.

❓ FAQ

1. Do I need a Google API key or a Google News account? No. This reads Google News' own public RSS feeds. There is no key, no login and no quota to apply for.

2. What exactly is articleUrl and how is it different from googleNewsUrl? googleNewsUrl is Google's redirector (news.google.com/rss/articles/CBMi…). articleUrl is the publisher's own URL that redirector points to — https://www.reuters.com/.... Only the second one is usable downstream.

3. Is the URL decoding reliable? On the validation run it resolved 442 of 442 articles, and every decoded hostname matched the publisher hostname declared in the feed. It is not guaranteed forever — it depends on a Google endpoint that Google can change. If it ever fails, rows still ship with the headline, publisher, date and googleNewsUrl, and decodeStatus says failed. The run does not fail and you still get your data.

4. Can I get the full article text? Not from this actor — it is a Google News feed scraper, and one actor should do one job. Because you get the real articleUrl, you can pipe the output straight into any article-extractor actor.

5. Why do I only get ~100 results for my keyword? That is Google News RSS' own hard cap, not a limit of this actor. Fan out on countries, when, or site: slices — see Getting more than 100 articles above.

6. Why is relatedArticles empty on my rows? You are almost certainly using queries. Google only builds coverage clusters on its section, topic and top-stories feeds. Add "sections": ["TOP"] to see them.

7. Which countries and languages work? Every Google News edition. US, GB, IN, FR, ES, BR and JP were all verified returning 100 articles per search feed. Set language (hl) and countries (gl) to match the edition you want.

8. Can I monitor a single publisher? Yes — "includeSites": ["reuters.com"], or write site:reuters.com directly in the query.

9. How do I run this on a schedule? Use Apify Schedules. A common pattern is when: "1d" once a day, or when: "1h" hourly for breaking-news monitoring. Articles are deduplicated inside a run by Google's stable article id.

10. Do I need a proxy? No. Google News served Apify's egress directly in testing, so the default is no proxy. Turn on Apify Proxy (RESIDENTIAL) if you run at high volume or want a country's edition served from inside that country.

11. Are duplicate articles charged twice? No. The same article appearing in several feeds is removed before anything is pushed or charged.

12. What happens if Google blocks the run? Blocked requests are counted and named in the run's status message and log. A run that could not reach Google at all fails loudly rather than handing you an empty dataset that looks like "there was no news".


This actor reads publicly available Google News RSS feeds — the same feeds any RSS reader subscribes to — and resolves the redirect links they contain. It collects no personal data, uses no login and no credentials.

Output is headline metadata and links: headlines, publisher names, timestamps and URLs. It does not copy article bodies. Headlines and publisher names remain the property of their publishers; if you republish them, respect the publishers' terms and applicable copyright law, and link back to the original article — which is exactly what articleUrl is for.

You are responsible for how you use the data, including compliance with Google's terms and any applicable law in your jurisdiction. Keep request volumes reasonable.