# Google News Rss Scraper (`b2b_lead_generation/google-news-rss-scraper`) Actor

Collect Google News headlines by keyword or top stories from public RSS feeds. Gather titles, links, publication dates, summaries, and publishers into clean JSON, CSV, or Excel datasets.

- **URL**: https://apify.com/b2b_lead_generation/google-news-rss-scraper.md
- **Developed by:** [B2B Lead Generation](https://apify.com/b2b_lead_generation) (community)
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.99 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Google News RSS Scraper

![Google News RSS Scraper cover](https://images.bigibyte.com/cdn-cgi/image/width=1260,height=540,fit=cover,format=webp/apify-actors-covers/google-news-rss-scraper-cover.png)

Collect news headlines from Google News using keywords or regional top stories. Choose your preferred language and country, search for specific topics, and gather structured news information in one dataset. Export your results in JSON, CSV, Excel, or other supported formats.

### What It Does

This actor collects news articles from Google News RSS feeds and organizes them into structured dataset records. It extracts available headlines, article links, unique identifiers, publication dates, summaries, and publisher names.

You can search for specific topics using keywords or collect top stories for a selected region. It is useful for news monitoring, media research, and tracking topics across different markets.

### Key Features

- Search news articles using keywords.
- Collect regional top stories.
- Support multiple search queries in one run.
- Select language and country preferences.
- Extract headlines and article links.
- Capture publication dates and summaries.
- Identify available news publishers.
- Set a maximum number of collected articles.
- Handle individual feed failures without stopping the entire run.
- Export results in multiple formats.

### Collection Modes

- **Search News:** Collect articles matching one or more search queries. Supports Google News search operators, such as `when:7d`, for time-based searches.
- **Top Stories:** Retrieve the latest available headlines from the regional Google News feed using the selected language and country.

### How It Works

Select a collection mode, provide your search queries when using search mode, and configure your preferred language, country, and maximum item limit.

The actor retrieves the corresponding RSS feeds, processes the available news entries, and saves each article as a separate dataset record. Each feed response is processed independently.

### Input Example

```json id="g8kq21"
{
    "mode": "search",
    "queries": [
        "bitcoin"
    ],
    "hl": "en-US",
    "gl": "US",
    "maxItems": 50,
    "requestDelaySecs": 1
}
```

### Output Example

```json id="n5wq72"
{
    "itemTitle": "Bitcoin (BTC) and ether (ETH) liquidity rebounds a year after $19 billion crypto flash crash - CoinDesk",
    "link": "https://news.google.com/rss/articles/CBMi2AFBVV95cUxNZ1lJbTh2STZJbUhjZmFLU0ZFck9FRnU1Z1lyNmFETUN5SjBYSGxBSlpIZFVuX3NqeHN5czVBV2xaTzZYb1Rzcmd",
    "guid": "CBMi2AFBVV95cUxNZ1lJbTh2STZJbUhjZmFLU0ZFck9FRnU1Z1lyNmFETUN5SjBYSGxBSlpIZFVuX3NqeHN5czVBV2xaTzZYb1RzcmdHRkwwZ25zTXpYdTk3bDlza3ZTbDVqWldqTUNC",
    "pubDate": "Sat, 10 Oct 2026 12:11:46 GMT",
    "summaryText": "Bitcoin (BTC) and ether (ETH) liquidity rebounds a year after $19 billion crypto flash crash CoinDesk",
    "newsSource": "CoinDesk",
    "scraped_at": "2026-10-26T00:00:00+00:00"
}
```

### Output Fields

| Field | Description |
|---|---|
| itemTitle | News article headline |
| link | Google News article URL |
| guid | Unique article identifier |
| pubDate | Original publication date |
| summaryText | Available article summary |
| newsSource | Name of the publishing source |
| scraped_at | Date and time the article was collected |

### Use Cases

- **News Monitoring:** Track news about specific topics, companies, brands, or industries.
- **Media Research:** Collect headlines and publisher information for media analysis.
- **Market Research:** Monitor business, finance, technology, and industry-related news.
- **Trend Analysis:** Explore frequently reported topics and emerging news trends.
- **Regional Monitoring:** Compare top stories across different language and country settings.
- **Research Datasets:** Export organized news records for reporting and further analysis.

### Frequently Asked Questions

**What types of news can this actor collect?**

It collects news articles available through Google News RSS feeds, including keyword-based search results and regional top stories.

**What is the difference between Search News and Top Stories?**

Search News retrieves articles related to your search queries, while Top Stories collects headlines from the selected regional news feed.

**Can I search for multiple keywords in one run?**

Yes. You can provide multiple search queries and collect matching news entries from each configured feed.

**Can I select a specific country and language?**

Yes. Use the `hl` setting for language preferences and `gl` for the country or regional edition.

**Can I collect news from a specific time period?**

Yes. Search queries support operators such as `when:7d`, allowing you to narrow results to a recent period.

**How many articles can I collect per run?**

The maximum supported limit is 1,000 items. Use `maxItems` to control how many articles the actor saves. Each RSS response is processed as a single feed result set rather than through additional pagination.

**What happens when a feed request fails?**

The actor continues processing other feeds and stores an error record for the failed request.

**Can I schedule automatic news collection?**

Yes. You can configure Apify schedules to collect updated news articles at your preferred intervals.

**Which export formats are supported?**

You can export collected datasets in JSON, CSV, Excel, and other formats supported by Apify.

### Trademark Notice

Google News and its associated names, logos, and trademarks belong to their respective owners. They are referenced only to identify the news source. This documentation does not imply any affiliation, sponsorship, endorsement, or partnership with Google.

### Disclaimer

This is an independent data collection tool and is not affiliated with or officially endorsed by Google or Google News. The actor collects news information made available through Google News RSS feeds. Users are responsible for ensuring that their collection, storage, and use of the data comply with applicable laws and website policies.

### Is Web Scraping Legal?

This actor collects publicly accessible news information from Google News RSS feeds without bypassing login screens, paywalls, or technical security measures. However, how collected information can be used depends on applicable laws and the source website's policies.

- **Personal Data:** News entries may contain names or other personal information. Ensure compliance with applicable data protection laws, including GDPR and CCPA where relevant.
- **Copyrighted Content:** News headlines, summaries, articles, and images may be protected by intellectual property laws. Avoid unauthorized reproduction or redistribution of copyrighted material.
- **Platform Terms and Rate Limits:** Collect information responsibly, avoid excessive requests, and respect applicable platform policies, attribution requirements, and published rate limits.
- **Disclaimer:** This information is provided for general guidance only and does not constitute legal advice. Consult a qualified legal professional for specific compliance questions.

For a detailed explanation, see Apify's legal overview: [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/)

# Actor input Schema

## `mode` (type: `string`):

What to scrape. Search feed needs queries; top stories uses language and country only.

## `queries` (type: `array`):

Search queries for search mode. Supports operators such as when:7d.

## `hl` (type: `string`):

Language and locale, for example en-US.

## `gl` (type: `string`):

Country code, for example US.

## `maxItems` (type: `integer`):

Stop after this many successful rows. Hard max is 1000.

## `daysBack` (type: `integer`):

How many days of history to walk back when maxItems is more than one feed can return (about 100). Each day is fetched as a separate request.

## `requestDelaySecs` (type: `number`):

Seconds to wait between requests.

## `userAgent` (type: `string`):

User-Agent header sent with each request.

## `timeoutSecs` (type: `integer`):

Overall run budget in seconds.

## `requestTimeoutSecs` (type: `integer`):

Per-request timeout in seconds.

## `proxyConfiguration` (type: `object`):

Optional proxy. Leave off unless you need it.

## Actor input object example

```json
{
  "mode": "search",
  "queries": [
    "bitcoin"
  ],
  "hl": "en-US",
  "gl": "US",
  "maxItems": 100,
  "daysBack": 30,
  "requestDelaySecs": 1,
  "userAgent": "ActorResearch/1.0",
  "timeoutSecs": 300,
  "requestTimeoutSecs": 30,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Dataset rows in the overview table.

## `dataset` (type: `string`):

Full dataset for this run.

## `items` (type: `string`):

Dataset items as JSON.

# 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 = {
    "queries": [
        "bitcoin"
    ],
    "daysBack": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("b2b_lead_generation/google-news-rss-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 = {
    "queries": ["bitcoin"],
    "daysBack": 30,
}

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

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

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

```

## CLI example

```bash
echo '{
  "queries": [
    "bitcoin"
  ],
  "daysBack": 30
}' |
apify call b2b_lead_generation/google-news-rss-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,b2b_lead_generation/google-news-rss-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

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