The Mine Works
Browse on Apify
← All posts
tutorial June 22, 2026 · 2 min read Updated June 22, 2026

How to Scrape Google News in Python (No API Key Required)

Google killed its News API in 2013. Learn how to pull headlines, sources, and publication dates from Google News in Python using the RSS feed, the GNews approach, and a pay-per-result scraper.

Try the scraper

The actor referenced in this article is live on Apify. Pay only for results delivered.

Open on Apify →

Google News aggregates headlines from thousands of publishers worldwide. Getting that data programmatically has been unnecessarily hard since Google retired its News API in 2013. Here are the working approaches in 2025.

Option 1: Google News RSS feed

Google News provides a free RSS feed per search query. No API key needed.

import feedparser
import urllib.parse

def search_google_news(query, language='en', country='US', max_results=100):
    encoded = urllib.parse.quote(query)
    url = f"https://news.google.com/rss/search?q={encoded}&hl={language}-{country}&gl={country}&ceid={country}:{language}"
    
    feed = feedparser.parse(url)
    results = []
    
    for entry in feed.entries[:max_results]:
        results.append({
            'title': entry.title,
            'link': entry.link,
            'published': entry.published,
            'source': entry.get('source', {}).get('title', ''),
            'summary': entry.summary,
        })
    
    return results

articles = search_google_news('artificial intelligence regulation 2025')
for a in articles[:5]:
    print(a['title'], '-', a['source'])

Limitation: RSS is capped at 100 results and the article URLs are Google redirect URLs, not the original publisher URL. Decoding them requires an extra step.

Option 2: GNews Python library

GNews wraps the RSS feed and decodes the redirect URLs:

pip install gnews
from gnews import GNews

google_news = GNews(language='en', country='US', max_results=100)
articles = google_news.get_news('OpenAI GPT-5')

for article in articles:
    print(article['title'])
    print(article['url'])      # decoded original URL
    print(article['published date'])
    print(article['publisher'])

Still capped at 100 results per query and subject to the same rate limits as direct RSS access.

Option 3: Apify actor for scale

When you need more than 100 results, multiple queries on a schedule, or consistent delivery without rate limits, use the Google News Scraper:

import apify_client

client = apify_client.ApifyClient('YOUR_APIFY_TOKEN')

run_input = {
    "query": "Nvidia earnings Q2 2025",
    "language": "en",
    "country": "US",
    "maxResults": 500,
    "dateRange": "1d",  # last 24 hours
}

run = client.actor('themineworks/google-news').call(run_input=run_input)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['title'])
    print(item['url'])
    print(item['source'], item['published_at'])

Scheduling for media monitoring

Set up a daily or hourly run via Apify Scheduler to track mentions of your brand, competitors, or industry keywords. Results push to a dataset you can query via API or connect to a Google Sheet.

# Webhook example: receive new articles via POST to your endpoint
# Configure in Apify console under Actor > Integrations > Webhooks

Filtering by publisher

The RSS approach does not support publisher filtering natively. You can filter post-retrieval:

tier_one_sources = {'BBC', 'Reuters', 'Associated Press', 'Bloomberg', 'Financial Times'}
filtered = [a for a in articles if a['source'] in tier_one_sources]

Pricing

First 25 results free. Pay per article returned. Zero charge on empty searches.

Related Actor

Try the scraper referenced in this article — live on Apify, pay only for results.

Open google-news on Apify →

Frequently asked questions

Is there a Google News API? +

Google shut down the official Google News API in 2013. Options today are the Google News RSS feed, Programmable Search Engine, or a scraper.

Can I use the Google News RSS feed for free? +

Yes. Google News RSS is free and requires no API key. It is limited to 100 results per query and does not support full pagination.

What is the GNews library? +

GNews is a Python library that wraps the Google News RSS feed and handles URL decoding. It is the most popular open-source option but is limited to 100 results per search.