Google News Scraper – Headlines, Real Article URLs & Full Text
Pricing
$2.00 / 1,000 article delivereds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
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 togoogleUrl, with an honesturlDecodedflag. 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.
| Field | Description |
|---|---|
title | Headline, with Google's - Publisher suffix removed |
source, sourceUrl | Publisher name and homepage, e.g. Reuters, https://www.reuters.com |
url | Real article URL on the publisher's site (decoded) |
googleUrl | The original news.google.com/rss/articles/... link |
urlDecoded | true when url is the real link; false means url still points at Google |
publishedAt | ISO 8601 UTC, e.g. 2026-09-22T14:33:05Z |
snippet | Text of Google's item description (Google News snippets are short — usually the headline) |
relatedTitles | Headlines of the related coverage Google groups under this story (top stories / topics) |
query, topic | Which search query or topic section produced the row |
language, country | The Google News edition used |
scrapedAt | When the run collected it |
With Fetch full article text switched on, each row also has:
| Field | Description |
|---|---|
articleText | Main body text, readability-style extraction (navigation, footers and scripts removed) |
articleTitle, articleDescription | Publisher's own title and og:description |
author | From meta tags or JSON-LD |
imageUrl | og:image lead image |
wordCount | Words in articleText |
articleError | null 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}
| Field | Default | Notes |
|---|---|---|
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 / country | en / US | The Google News edition. sv + SE gives Swedish news, de + DE German, en + IN Indian English. |
timeRange | 7d | any, 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". |
maxItemsPerQuery | 100 | Google serves about 100 items per feed at most. |
decodeUrls | true | Resolve real publisher URLs. Off = fastest headlines-only run. |
fetchArticleContent | false | Fetch and extract the article body from each decoded URL. |
concurrency | 5 | Parallel feeds and article fetches. |
proxyConfiguration | off | Not needed for normal volumes. |
Search operators that work in queries
| Example | What it does |
|---|---|
Tesla when:24h | Only the past 24 hours (1h, 7d, 30d also work; overrides timeRange) |
"interest rate decision" | Exact phrase |
Apple -iPhone | Exclude a word |
site:reuters.com Nvidia | One publisher only |
allintitle: earnings call | All words must be in the headline |
ECB after:2026-09-01 before:2026-09-15 | Custom date window |
Riksbanken OR Riksbank | Either 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:1hand 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 ApifyClientclient = 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:24hruns 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: falserather 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.
Is it legal to scrape Google News?
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.