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.
The actor referenced in this article is live on Apify. Pay only for results delivered.
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.
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.
How to Scrape AmbitionBox Company Reviews and Ratings
AmbitionBox is India largest employer review platform with 300,000 companies. Learn how to pull ratings, review counts, salary data, and dimension scores as structured JSON without any official API.
AliExpress Product Data API: Prices, Ratings, and Orders in Python
AliExpress affiliate API has restricted coverage. Learn how to scrape AliExpress product listings for prices, ratings, order counts, and seller data as structured JSON — no affiliate approval needed.
ClinicalTrials.gov API v2: How to Search 500,000 Studies and Track Trial Status
ClinicalTrials.gov upgraded to a v2 REST API in 2024. Here is how to use it, what changed from v1, and how to build automated trial monitoring pipelines in Python.