# Google News Scraper — Fast Headlines & Sources \[No API Key] (`knotless_cadence/google-news-scraper`) Actor

Monitor Google News fast. No API, no RSS limits, no blocks. Titles, dates, snippets, sources → CSV. 75 lifetime runs · 100% 30d success · u30d=3, u7d=1 · 8 paying users. dev.to/0012303 (Proxy-Seller 2320w paid) · blog.spinov.online · spinov001@gmail.com

- **URL**: https://apify.com/knotless\_cadence/google-news-scraper.md
- **Developed by:** [Alex](https://apify.com/knotless_cadence) (community)
- **Categories:** News, Open source
- **Stats:** 14 total users, 2 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-usage

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Google News Scraper

Scrape Google News articles by keyword — extract headlines, URLs, publication dates, source names, and descriptions. Monitor news coverage for any topic, brand, or industry in real-time.

### Features

- **Real-time news data** — scrape the latest articles from Google News RSS feeds
- **Multiple search queries** — process several topics in a single run
- **Time range filters** — filter articles by hour, day, week, month, or year
- **15 languages × 15 country regions** — exact set defined in input\_schema.json (en/es/fr/de/it/pt/ru/ja/ko/zh-CN/ar/hi/tr/pl/nl × US/GB/CA/AU/DE/FR/ES/IT/BR/IN/JP/KR/RU/MX/TR)
- **Source attribution** — extract publisher name and URL for each article
- **HTML fallback** — automatically switches to HTML parsing if RSS is unavailable
- **Clean output** — HTML tags stripped from titles and descriptions

### Output Example

```json
{
 "title": "OpenAI Announces GPT-5 with Advanced Reasoning Capabilities",
 "url": "https://www.reuters.com/technology/openai-announces.",
 "publishedAt": "2026-03-17T14:30:00.000Z",
 "description": "OpenAI unveiled its latest language model on Monday, featuring significant improvements in mathematical reasoning and code generation.",
 "source": "Reuters",
 "sourceUrl": "https://www.reuters.com",
 "query": "artificial intelligence",
 "scrapedAt": "2026-03-18T12:00:00.000Z"
}
```

**Field reference (8 fields per article via RSS branch):** `title`, `url`, `publishedAt`, `description`, `source`, `sourceUrl`, `query`, `scrapedAt`. The HTML fallback branch returns 6 fields (no `description`, no `sourceUrl`) — used only when Google News RSS is empty for the query.

### Use Cases

- **Media monitoring** — track news coverage of your brand, product, or industry across hundreds of sources
- **Competitive intelligence** — monitor competitor announcements, press releases, and media mentions
- **Trend tracking** — spot emerging stories in real-time, before they hit Twitter
- **PR measurement** — count brand mentions vs competitors (article-count signal, not weighted share-of-voice)
- **Content sourcing** — feed news headlines into LLM pipelines, briefing tools, or RSS replacements

### Input Parameters

| Parameter | Type | Default | Description |
|-----------|------|---------|-------------|
| `searchQueries` | Array | `["artificial intelligence"]` | Keywords or phrases to search for in Google News |
| `language` | String | `"en"` | Language code (en, es, fr, de, ru, etc.) |
| `country` | String | `"US"` | Country code for regional news (US, GB, DE, FR, etc.) |
| `maxArticlesPerQuery` | Number | `50` | Maximum articles to extract per search query |
| `timeRange` | String | `"week"` | Time filter: hour, day, week, month, year |

### Pricing

Standard Apify per-run compute pricing — no per-article fee. Compute cost depends on Google News response latency (typical: a few CU per query). Use `maxArticlesPerQuery` to cap output size.

### Step-by-Step Tutorial

#### 1. Open Google News Scraper on Apify

Go to [Google News Scraper](https://apify.com/knotless_cadence/google-news-scraper) and click "Try for free."

#### 2. Configure Your Search

Enter your search queries. Examples:

- Brand monitoring: `["Tesla", "Tesla stock", "Elon Musk"]`
- Industry tracking: `["electric vehicles", "EV charging", "battery technology"]`
- Competitor intelligence: `["competitor-name"]`

#### 3. Set Filters

Choose time range (hour/day/week/month/year) and language/country for localized results.

#### 4. Run and Download

Click "Start." Results are available as JSON, CSV, or Excel in under 30 seconds.

### Technical Details

This scraper uses **Google News RSS feeds** — the most reliable method for news data extraction. RSS feeds:

- Never break on website redesigns
- Return structured XML with consistent format
- Don't require JavaScript rendering
- Work without proxy or authentication

The fallback HTML parser activates only if RSS is unavailable for a specific query.

**Method:** `https://news.google.com/rss/search?q={query}+when:{first-letter-of-timerange}&hl={language}&gl={country}&ceid={country}:{language}`

**Honest behavioral notes:**

- `timeRange` is encoded as `+when:h|d|w|m|y` appended to the query (one letter), NOT as a separate URL param. There is also an unused `tbs=qdr:*` map in code that is not appended to the request URL — only the `+when:` form is sent.
- `description` field is truncated to 500 characters via `.substring(0, 500)`. Long article summaries are cut off mid-sentence.
- The HTML fallback branch (`article, [data-n-tid], .NiLAwe` selectors) only activates if RSS returns 0 items for that query. Google News rarely serves HTML to the RSS endpoint, so in practice this branch is exercised only on edge cases.
- No proxy / no retry. A transient 5xx from Google News leaves that query with 0 articles emitted.
- HTML tags are stripped from `title` and `description` via `.replace(/<[^>]*>/g, '')` — fast, but not a full HTML decoder (entities like `&amp;` are NOT decoded).

### Integration Examples

#### With n8n (no-code automation)

1. Add HTTP Request node → call Apify API
2. Parse JSON response
3. Send to Slack/Email/Google Sheets

#### With Python

```python
import requests
response = requests.get(
 "https://api.apify.com/v2/acts/knotless_cadence~google-news-scraper/runs/last/dataset/items",
 params={"token": "YOUR_TOKEN"}
)
articles = response.json()
```

#### With JavaScript

```javascript
const response = await fetch(
 `https://api.apify.com/v2/acts/knotless_cadence~google-news-scraper/runs/last/dataset/items?token=YOUR_TOKEN`
);
const articles = await response.json();
```

### FAQ

**Q: How fresh are the news articles?**
A: Articles are scraped from Google News in real-time. Use `timeRange: "hour"` to get only the most recent stories. Publication dates come directly from Google News.

**Q: Can I scrape news in languages other than English?**
A: Yes. Set the `language` and `country` parameters to get localized results. For example, `language: "de"` and `country: "DE"` for German news.

**Q: Does it follow links to the original articles?**
A: The scraper extracts the original article URL as provided by Google News. It does not visit or scrape the full text from source websites — for that, combine this scraper with a web content extractor.

**Q: How often does Google News update?**
A: Articles appear within minutes of publication. Use `timeRange: "hour"` for the freshest results.

**Q: What languages are supported?**
A: 15 languages × 15 country regions (full list in input\_schema.json). Examples: `de/DE` for German news, `ja/JP` for Japanese, `ru/RU` for Russian. Combinations not in the enum will be rejected by the input validator.

**Q: Does it follow links to full article text?**
A: No — it extracts metadata (title, source, date, description, URL). For full text, combine with a web content extractor.

**Q: How reliable is it?**
A: Uses Google News RSS feeds — the most stable data format. RSS hasn't changed in years. No JavaScript rendering needed.

**Q: Can I monitor multiple topics?**
A: Yes. Pass an array of search queries and process them all in one run.

***

*Part of 78 data tools (31 published) by knotless\_cadence on Apify. Related tools:*

- [Walmart Reviews Scraper](https://apify.com/knotless_cadence/walmart-reviews-scraper) — Product reviews to CSV/JSON/Excel, 17 fields per review, bypasses Walmart's 100-review UI cap
- [Trustpilot Review Scraper](https://apify.com/knotless_cadence/trustpilot-review-scraper) — 951 lifetime production runs, full review schema export
- [Hacker News Scraper](https://apify.com/knotless_cadence/hacker-news-scraper) — Scrape top stories, comments, and user data from Hacker News
- [MCP Trend Detector](https://apify.com/knotless_cadence/mcp-trend-detector) — AI-powered trend detection across news and social media sources
- [Bluesky Scraper](https://apify.com/knotless_cadence/bluesky-scraper) — Scrape posts and profile data from Bluesky social network

***

**Proof of delivery**: This Google News scraper has **45 lifetime production runs** as of May 2026. Author maintains 31 published actors (78 total) and shipped a paid 3-article series in March 2026 ($150, proxy industry). Pilot pricing locked through **May 2026**.

**Sample request?** Reply `sample` to spinov001@gmail.com and we'll send 2 published case-study articles within 24 hours.

### Custom scraping — pilot tiers

Need data, not infrastructure. We build, you query. Three tiers:

- **Pilot — $97** · 1 actor, basic config, 7-day support. Good entry point for one-off jobs.
- **Standard — $297** · custom actor + Slack/email alerts on results, 30-day support. Most projects fit here.
- **Premium — $797** · custom actor + dashboard + 90-day support + 1 modification round. For ongoing data pipelines.

**Email:** <spinov001@gmail.com> — drop specs, schema, or target URLs and get a quote within 48h.

**Proof of work:** [31 published Apify scrapers](https://apify.com/knotless_cadence) (78 total in portfolio) — Trustpilot 951 runs, Reddit 82, Google News 45, Email Extractor 107. Recently delivered a paid 3-article series for a client in the proxy industry ($150).

**More tips:** [t.me/scraping\_ai](https://t.me/scraping_ai) · [blog.spinov.online](https://blog.spinov.online)

***

*Honest disclosure: this scraper relies on Google News public RSS endpoints — no scraping behind login walls, no personal data, robots.txt respected. Not affiliated with Google.*

# Actor input Schema

## `searchQueries` (type: `array`):

Keywords or topics to search for in Google News

## `language` (type: `string`):

Language for Google News results

## `country` (type: `string`):

Country/region for localized Google News results

## `maxArticlesPerQuery` (type: `integer`):

Maximum number of news articles to extract per search query

## `timeRange` (type: `string`):

Only return articles published within this time period

## Actor input object example

```json
{
  "searchQueries": [
    "artificial intelligence",
    "startup funding",
    "climate change"
  ],
  "language": "en",
  "country": "US",
  "maxArticlesPerQuery": 50,
  "timeRange": "week"
}
```

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchQueries": [
        "artificial intelligence",
        "startup funding",
        "climate change"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("knotless_cadence/google-news-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchQueries": [
        "artificial intelligence",
        "startup funding",
        "climate change",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("knotless_cadence/google-news-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchQueries": [
    "artificial intelligence",
    "startup funding",
    "climate change"
  ]
}' |
apify call knotless_cadence/google-news-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=knotless_cadence/google-news-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/gekwgxM0rPkVVIzUG/builds/fddUGDazwTOyMYOR0/openapi.json
