URL Resolution
The problem
Google News RSS returns redirect URLs like:
https://news.google.com/rss/articles/CBMirwFBVV95cUx...
These are not real article URLs. Google requires JavaScript execution to resolve them — plain HTTP requests (requests.get, requests.head) cannot follow these redirects. This is a known Google behavior change since mid-2023.
Solution: Playwright extra
Install the optional Playwright extra to resolve URLs automatically:
pip install gnews[playwright]
playwright install chromium # one-time setup, downloads ~150MB
Once installed, URL resolution is automatic — no code changes required:
from gnews import GNews
g = GNews(max_results=5)
articles = g.get_news("artificial intelligence")
print(articles[0]['url'])
# https://www.politico.com/news/2026/06/15/... ← real URL
Fallback behavior
If Playwright is not installed or resolution fails for a specific article, GNews silently returns the original Google URL — it never raises an error:
# Without gnews[playwright]:
print(articles[0]['url'])
# https://news.google.com/rss/articles/CBMi... ← Google URL
Success rate
Based on community testing (~70-80% success rate):
Site type |
Result |
|---|---|
Standard news sites (BBC, Reuters, WSJ) |
✅ Resolved |
Sites with cookie consent gates |
⚠️ May fail |
Paywalled sites |
⚠️ May fail |
Production alternative
For 100% reliable real URLs without Playwright, use the SearchApi backend:
g = GNews(searchapi_key="YOUR_KEY")
articles = g.get_news("AI")
print(articles[0]['url']) # always a real URL
Manual resolution
You can also resolve individual URLs directly:
from gnews.utils.utils import resolve_url
google_url = "https://news.google.com/rss/articles/CBMi..."
real_url = resolve_url(google_url)
print(real_url)