News
Google News Scraper: Export Headlines by Keyword, Topic and Date
Scrape Google News into JSON or CSV: search operators, topics, 80+ language-region editions, date ranges and decoded article links. A practical news API guide.
News
Scrape Google News into JSON or CSV: search operators, topics, 80+ language-region editions, date ranges and decoded article links. A practical news API guide.
Google News aggregates thousands of publishers, which makes it the obvious starting point for media monitoring. Getting the data out is harder. There’s no official Google News API, the RSS feeds return around 100 items per search, and the links in them point to Google redirect URLs rather than the actual articles.
The Google News Scraper gives you that data as a dataset. Search with a query (including operators like site: and intitle:), browse topics, pick any of 80+ language and region editions, set a date window, and get back title, publisher, publish time, article URL and image for each result. Above 100 results, the actor splits your date range into individual days, so you can collect far more than a single Google News search shows.
| Field | Description |
|---|---|
title |
Headline |
link |
Article URL (decoded to the publisher URL when fetchArticleDetails is on) |
source |
Publisher name or domain |
sourceUrl |
Publisher homepage |
publishedAt |
Publish time, ISO 8601 |
image |
Preview image from the article’s Open Graph or Twitter Card tags |
guid |
Google News item ID, useful for de-duplication |
query, pick topics, paste topicsHashed IDs, or combine them. Results are merged.language edition, e.g. US:en, GB:en, DE:de, FR:fr, BR:pt-419 or JP:ja.openEndedDateRange such as 1h, 7d or 1y, or a fixed dateFrom / dateTo.maxItems and decide whether to enable fetchArticleDetails.{
"query": "\"Acme Corp\" -jobs",
"language": "US:en",
"openEndedDateRange": "1d",
"maxItems": 100,
"fetchArticleDetails": true
}
fetchArticleDetails visits each article to resolve the real publisher URL and grab the preview image. It makes runs slower, so leave it off when headlines and Google links are enough.
Topics run as a standalone search. The query field defaults to "AI breakthrough", so set it to an empty string when you only want topics:
{
"query": "",
"topics": ["BUSINESS", "TECHNOLOGY"],
"language": "GB:en",
"openEndedDateRange": "12h",
"maxItems": 200
}
Available topics: WORLD, NATION, BUSINESS, TECHNOLOGY, ENTERTAINMENT, SPORTS, SCIENCE, HEALTH. For narrower sections such as Technology > Artificial intelligence, copy the hash from a news.google.com/topics/... URL into topicsHashed, including /sections/... if present.
openEndedDateRange defaults to 60d and overrides fixed dates whenever it’s set. To use dateFrom and dateTo, clear it:
{
"query": "intitle:\"interest rates\" AND (ECB OR \"European Central Bank\")",
"language": "DE:de",
"dateFrom": "2026-01-01",
"dateTo": "2026-06-30",
"openEndedDateRange": "",
"maxItems": 3000
}
With maxItems above 100, the actor searches day by day across the range. That’s how it gets past Google News’ cap of roughly 100 results per search.
| Operator | Example | Effect |
|---|---|---|
site: |
site:reuters.com tariffs |
One publisher only |
intitle: |
intitle:Samsung |
Keyword must be in the headline |
"..." |
"climate change" |
Exact phrase |
- |
apple -fruit |
Exclude a term |
AND / OR |
AI AND (ethics OR regulation) |
Boolean logic |
intitle: is the most useful filter for monitoring: it removes articles that only mention your brand in passing.
{
"title": "Web Scraping Optimization: Tips for Faster, Smarter Scrapers",
"link": "https://hackernoon.com/web-scraping-optimization-tips-for-faster-smarter-scrapers",
"source": "hackernoon.com",
"sourceUrl": "https://hackernoon.com",
"publishedAt": "2024-11-15T08:00:00.000Z",
"image": "https://hackernoon.imgix.net/images/example.png",
"guid": "CBMiiAFBVV95cUxQUXh5WVZ2RkNpNG9ndjF6V3hMRHBR..."
}
image is empty when a publisher doesn’t set preview tags.
Use the Apify API as your Google News API. Keep your token in APIFY_TOKEN.
cURL:
curl -X POST \
"https://api.apify.com/v2/acts/epicscrapers~google-news-scraper/run-sync-get-dataset-items" \
-H "Authorization: Bearer $APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"query": "site:techcrunch.com intitle:funding", "language": "US:en", "openEndedDateRange": "7d", "maxItems": 50}'
Python (pip install apify-client), comparing coverage of one story across editions:
import os
from apify_client import ApifyClient
client = ApifyClient(os.environ["APIFY_TOKEN"])
editions = ["US:en", "GB:en", "DE:de", "FR:fr"]
for lang in editions:
run = client.actor("epicscrapers/google-news-scraper").call(run_input={
"query": "\"electric vehicles\" tariffs",
"language": lang,
"openEndedDateRange": "3d",
"maxItems": 50,
})
items = client.dataset(run["defaultDatasetId"]).list_items().items
sources = sorted({i["source"] for i in items})
print(lang, len(items), "articles from", len(sources), "publishers")
Brand and competitor alerts. Save an input with intitle:"YourBrand" and openEndedDateRange: "1h" as an Apify task, schedule it hourly, and send new items to Slack or email through an integration. De-duplicate on guid so each story alerts once.
PR measurement. Run a monthly query for your company over the previous month, then count articles per source and per day from publishedAt. Comparing editions (US:en vs DE:de) shows where coverage actually landed.
Market and investor news. Track tickers, executives or sectors with Boolean queries and feed the headlines into a sentiment model or an LLM summary each morning.
Newsletters and curation. Pull a topic feed (TECHNOLOGY, or a hashed section) with fetchArticleDetails on, and you have titles, clean links and images ready for a newsletter template.
Research datasets. Use fixed date ranges with a high maxItems to build a corpus of coverage on an event, then fetch the full article text from each link with a separate article extractor.
For video coverage of the same topics, see the YouTube transcript scraper guide.
No. Google retired its News Search API years ago. Google News still publishes RSS feeds, which this actor uses, and it adds pagination by day, link decoding and structured output on top.
No, the actor returns metadata: headline, link, publisher, date and image. Pass the link field to an article or web-page extractor if you need body text.
A single Google News search returns about 100 items. Set maxItems above 100 and the actor walks the date range one day at a time to collect more.
The actor reads public RSS feeds designed for syndication. Headlines and links are generally fine for monitoring and analysis; republishing full articles is not. Respect publisher copyright and applicable laws. This is not legal advice.
The actor uses Apify Proxy by default. If you see blocks on large jobs, switch proxyConfiguration to residential proxies or shorten the date range.
Enter one query, pick your edition, set openEndedDateRange to 1d and run it. Then schedule it. Open the Google News Scraper on Apify or see the actor page.