Google News Scraper - Real Publisher URLs, Not Redirects avatar

Google News Scraper - Real Publisher URLs, Not Redirects

Pricing

$3.00 / 1,000 article returneds

Go to Apify Store
Google News Scraper - Real Publisher URLs, Not Redirects

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

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

2 days ago

Last modified

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

FieldDefaultNotes
queryKeywords. Google operators work: tesla OR rivian, site:reuters.com, intitle:layoffs.
topicUse a topic feed instead of a query: World, Nation, Business, Technology, Entertainment, Sports, Science, Health.
freshnessany time1h, 1d, 7d, 30d, 1y. Applies to query searches.
languageen-USGoogle's hl, e.g. en-GB, fr, de, es-419.
countryUSGoogle's gl, e.g. GB, CA, DE, IN.
maxItems50Up to 100.
resolveUrlstrueDecode to the real publisher URL.
fetchArticleTextfalseDownload each resolved article and pull out the body. Needs resolveUrls.
aiSummaryfalse1–2 sentence summary plus a sentiment label. Needs your own OpenAI key.
openaiApiKeyOnly read when aiSummary is on. Stored as a secret.
proxyConfigurationoffGoogle 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 and urlResolved: false.
  • source, sourceUrl, publishedAt, snippet — null whenever Google's feed omits them for that item.
  • articleText — only present when fetchArticleText is on and extraction worked. Plenty of publishers block it or have no extractable body.
  • aiSummary / sentiment — only when aiSummary is 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: null on several rows — those sites blocked extraction. They're ok: false and weren't charged.
  • A BAD_INPUT row — supply a query or pick a topic, and an OpenAI key if aiSummary is on.