Google News Scraper — Search & Topic RSS Feeds avatar

Google News Scraper — Search & Topic RSS Feeds

Pricing

Pay per event

Go to Apify Store
Google News Scraper — Search & Topic RSS Feeds

Google News Scraper — Search & Topic RSS Feeds

Scrape Google News search results and topic (beat) feeds into a clean dataset — title, publisher, source URL, publish date, and an opt-in true-article-URL resolver. Handles the ~100-item pagination cap and Google's redirect-token links so you don't have to.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Categories

Share


🎯 What this scrapes

Google News hands back a redirect token instead of the real article URL and quietly truncates any window at 100 items — we walk the date range and hand you clean rows anyway. This isn't a job for our generic rss-feed-scraper (that one parses any RSS/Atom feed as-is) — this Actor is purpose-built for Google News' redirect tokens, truncation-aware date-window pagination, and topic/beat feeds.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 No proxy markup — Google's RSS surface doesn't gate on IP reputation, so we don't burn your run budget on residential-proxy rotation you don't need; proxyConfiguration stays in the input in case that ever changes.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • PR and media-monitoring teams tracking brand or competitor coverage across outlets.
  • Market researchers measuring news volume and sentiment shifts around a topic over time.
  • SEO and content-ops teams tracking which publishers are covering a competitor or keyword.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
queriesarrayno['openai', 'anthropic']Search queries. Each is walked independently across the resolved date range. At least one of Queries / Topics is…
topicsarrayno[]Google News topic (beat) codes, e.g. TECHNOLOGY, BUSINESS. At least one of Queries / Topics is required.
hlstringno'en-US'Google News language parameter.
glstringno'US'Google News country parameter, 2-letter.
ceidstringno'US:en'Combined locale parameter, shape "{gl}:{lang}".
dateFromstringno'—'Start of the date walk (Queries mode only). Defaults to 7 days before run start when both dates are omitted.
dateTostringno'—'End of the date walk (Queries mode only). Defaults to run start when omitted.
resolveArticleUrlbooleannoFalseFollow each item's Google redirect link to populate the real publisher article URL. Costs one extra request per item —…
maxItemsPerQueryintegerno500Cap on emitted rows per query or topic.
proxyConfigurationobjectno{'useApifyProxy': False}Apify Proxy configuration. This target is proven reachable proxy-free — not defaulted to RESIDENTIAL.

Example input

{
"queries": [
"openai",
"anthropic"
],
"dateFrom": "2026-09-11",
"dateTo": "2026-09-13",
"resolveArticleUrl": false,
"maxItemsPerQuery": 50,
"proxyConfiguration": {
"useApifyProxy": false
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
titlestringArticle title, kept exactly as received (including any trailing " - Publisher" suffix).
linkstringRaw Google News redirect token URL.
resolved_url['string', 'null']True publisher article URL — only populated when resolveArticleUrl=true.
source_name['string', 'null']Publisher name from .
source_url['string', 'null']Publisher domain from .
pub_datestringPublish date/time, ISO-8601.
query['string', 'null']Input query that produced this row (queries mode).
topic['string', 'null']Input topic code that produced this row (topics mode).
guidstringFeed GUID — primary dedupe key.

Example output

{
"title": "OpenAI announces new model - TechCrunch",
"link": "https://news.google.com/rss/articles/CBMi...",
"resolved_url": null,
"source_name": "TechCrunch",
"source_url": "https://techcrunch.com",
"pub_date": "2026-09-10T14:32:00Z",
"query": "openai",
"topic": null,
"guid": "CBMi..."
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.2One-off warm-up charge per run
result$0.001Per dataset item

Example: 1 000 results at the rates above ≈ $1.20. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

resolveArticleUrl defaults off — turning it on adds one request per row, so unit economics favor leaving it off unless you need the resolved publisher URL. The ~100-item-per-window cap is handled by halving down to a 1-day floor; extremely high-volume queries can still hit 100 items even at that floor, in which case we accept the window best-effort and log a warning rather than guess at what's missing. Topic feeds return a snapshot with no date window. This is an undocumented Google endpoint with no published SLA — we watch for shape changes, but Google can alter it without notice.

❓ FAQ

Why is resolveArticleUrl off by default?

Turning it on follows one extra redirect per row, which multiplies request volume. We keep it opt-in so the default run stays fast and cheap — flip it on when you need the true publisher URL instead of Google's redirect token.

What happens when a date window has more than 100 articles?

Google truncates any window at exactly 100 items without saying so. We detect that ceiling, split the window in half, and re-fetch — recursively, down to a 1-day floor — so dense windows still surface everything reachable instead of silently dropping items.

Does this work for topic feeds like TECHNOLOGY or BUSINESS?

Yes — pass topic codes instead of (or alongside) search queries to monitor a beat. Topic feeds return Google's current snapshot and aren't date-windowed, since Google doesn't expose a date cursor for them.

Where does source_url come from if link is a redirect token?

Google's own element carries the publisher's domain for free — no extra request needed. We extract it directly, so you get a usable publisher domain on every row even with resolveArticleUrl off.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.