Google News Scraper - Real Publisher URLs, Not Redirects
Pricing
$3.00 / 1,000 article returneds
Google News Scraper - Real Publisher URLs, Not Redirects
Every article link in a Google News feed is a redirect blob, news.google.com/rss/articles/CBMi... This decodes them back to the publisher's real URL and flags what won't decode. Title, publisher, date and snippet; full text and AI summary optional. $3.00 per 1,000, no start fee.
Pricing
$3.00 / 1,000 article returneds
Rating
5.0
(2)
Developer
Dami's Studio
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Google News Scraper
Every article link in a Google News feed is a redirect blob: https://news.google.com/rss/articles/CBMi..., 102 out of 102 items on a check run today. The publisher's name and homepage sit right there in the same item, but the link that actually reaches the article has to be decoded out of that string. This actor decodes it before it writes the row.
Search by keyword or topic. Each row carries title, url, urlResolved, source, sourceUrl, publishedAt, snippet and the original googleUrl. Optionally the full article body and an AI summary.
Decoding is best-effort, and that matters: when a link genuinely won't decode, the row still comes back with urlResolved: false and url left as the Google link, rather than the article being dropped. Check urlResolved per row and you always know which one you're holding.
There's no API key to get and nothing to log into, and it runs without a browser.
Input
| Field | Default | Notes |
|---|---|---|
query | — | Keywords. Google operators work: tesla OR rivian, site:reuters.com, intitle:layoffs. |
topic | — | Use a topic feed instead of a query: World, Nation, Business, Technology, Entertainment, Sports, Science, Health. |
freshness | any time | 1h, 1d, 7d, 30d, 1y. Applies to query searches. |
language | en-US | Google's hl, e.g. en-GB, fr, de, es-419. |
country | US | Google's gl, e.g. GB, CA, DE, IN. |
maxItems | 50 | Up to 100. |
resolveUrls | true | Decode to the real publisher URL. |
fetchArticleText | false | Download each resolved article and pull out the body. Needs resolveUrls. |
aiSummary | false | 1–2 sentence summary plus a sentiment label. Needs your own OpenAI key. |
openaiApiKey | — | Only read when aiSummary is on. Stored as a secret. |
proxyConfiguration | off | Google News RSS is public with no anti-bot. Only turn this on if you're hitting IP rate limits at volume. |
{ "query": "openai funding", "freshness": "7d", "language": "en-US", "country": "US", "maxItems": 30, "resolveUrls": true }
Give it a query or a topic. Send neither and you get back an uncharged BAD_INPUT row saying which one is missing.
Fields that come back null
url/urlResolved— some publishers' Google links can't be decoded. You get the Google link andurlResolved: false.source,sourceUrl,publishedAt,snippet— null whenever Google's feed omits them for that item.articleText— only present whenfetchArticleTextis on and extraction worked. Plenty of publishers block it or have no extractable body.aiSummary/sentiment— only whenaiSummaryis on and the OpenAI call came back. A failed call leaves the fields empty; the article row itself still ships.
Limits
- Roughly 100 results per query. That's Google's per-feed cap. Split larger jobs by keyword, by
site:, or by freshness window. - Full text is a per-article gamble. Paywalls and JS-rendered pages don't yield text to a plain fetch. Those rows are flagged and not charged, but you shouldn't budget on getting the body for every article.
- The AI summary runs on your OpenAI key, and OpenAI bills you for it separately. This actor charges nothing extra for it.
Billing
$3.00 per 1,000 articles ($0.003 each), and no run-start fee. It's the same $3.00 on the free plan as on a paid one, with nothing tiered by volume.
The unusual part is what "complete" means here. With fetchArticleText on, a row whose body couldn't be extracted comes back ok: false with articleText: null and isn't billed — you don't pay for a headline when you asked for a body. Same for BAD_INPUT, NO_RESULTS, BLOCKED, RATE_LIMITED and NETWORK rows.
There's no separate charge for resolving URLs, for fetching article text, or for the AI summary.
Troubleshooting
- Lots of
urlResolved: false— those publishers' links didn't decode. Title, source, date and the Google link are still there. articleText: nullon several rows — those sites blocked extraction. They'reok: falseand weren't charged.- A
BAD_INPUTrow — supply aqueryor pick atopic, and an OpenAI key ifaiSummaryis on.