Article Scraper & Content Extractor
Pricing
$15.00/month + usage
Article Scraper & Content Extractor
Extract clean article text, titles, authors, dates, summaries, images, keywords, and metadata from news articles and blog posts.
Article Extractor
Verified sample: the one-page Apify Blog preset below succeeded on build 0.2.7, saved a complete article row, and used about $0.0055 in platform resources during the validation run.
Extract clean, structured data from news articles and blog posts. This Apify Actor returns article text, title, authors, publication date, summary, image URLs, keywords, meta tags, language, and extraction status for each URL.
It is useful for news monitoring, content research, SEO workflows, data enrichment, and text-analysis pipelines.
Features
- Extract full article text from article and blog post pages
- Return titles, authors, publication dates, source URLs, and language
- Collect summaries, keywords, meta descriptions, and meta keywords when available
- Capture the main image URL, discovered image URLs, and embedded video URLs when supported by the extractor
- Process multiple article URLs in one Actor run
- Configure timeout, language hint, User-Agent, and proxy settings
- Push one structured dataset item per input URL, including failed attempts with error details
Input
Provide one or more article URLs in startUrls.
{"startUrls": [{ "url": "https://blog.apify.com/what-is-web-scraping/" }],"language": "en","requestTimeout": 30,"maxConcurrency": 1,"maxRetries": 1,"fetchImages": false,"proxyConfiguration": {"useApifyProxy": false}}
Input fields
| Field | Type | Description |
|---|---|---|
startUrls | array | Direct article or blog post URLs to extract. |
language | string | Optional two-letter language hint such as en, es, de, or fr. Leave empty for automatic detection where possible. |
requestTimeout | integer | Maximum time in seconds to wait for each article page. Defaults to 30. |
maxConcurrency | integer | Number of article URLs to process in parallel. Defaults to 3. |
maxRetries | integer | Retries for transient request failures such as timeouts, rate limits, and temporary server errors. Defaults to 2. |
fetchImages | boolean | Include available article image URLs. The Actor stores image URLs, not image files. |
browserUserAgent | string | Optional custom User-Agent header. |
proxyConfiguration | object | Optional Apify Proxy or custom proxy configuration for sites that block direct requests. |
Output
The Actor returns a JSON dataset with the following fields for each article:
| Field | Description |
|---|---|
articleURL | Input or resolved article URL. |
sourceURL | Source website URL when detected. |
articleLanguage | Detected article language, for example en or es. |
articleTitle | Article title. |
articleAuthors | Article authors as an array. |
articlePublishDate | Publication date when detected. |
articleText | Clean extracted article text. |
articleTopImage | Main article image URL when detected. |
articleAllImages | Image URLs as an array when available. |
articleVideos | Embedded video URLs as an array when available. |
articleKeywords | Keywords or categories as an array when available. |
articleSummary | Extracted or generated article summary. |
articleMetaDescription | Page meta description when available. |
articleMetaKeywords | Page meta keywords as an array when available. |
wordCount | Number of words in the extracted article text. |
characterCount | Number of characters in the extracted article text. |
scrapeSuccess | true when extraction succeeded, otherwise false. |
scrapeErrorMessage | Error details for failed extractions. |
scrapedAt | UTC timestamp when the URL was processed. |
Example Output
[{"articleURL": "https://www.example.com/news/article1","sourceURL": "https://www.example.com","articleLanguage": "en","articleTitle": "Example News Article","articleAuthors": ["John Doe", "Jane Smith"],"articlePublishDate": "2024-07-27T10:00:00Z","articleText": "This is the full text of the example news article...","articleTopImage": "https://www.example.com/images/article1.jpg","articleAllImages": ["https://www.example.com/images/article1.jpg", "https://www.example.com/images/article2.png"],"articleVideos": [],"articleKeywords": ["news", "example", "article"],"articleSummary": "A brief summary of the example news article.","articleMetaDescription": "An example article for demonstration.","articleMetaKeywords": ["example", "article", "news", "demo"],"wordCount": 825,"characterCount": 4920,"scrapeMethod": "newspaper3k","scrapeSuccess": true,"scrapedAt": "2024-07-27T12:34:56Z"}]
Under the current rental model, failed URLs are preserved in the default dataset with articleURL, scrapeSuccess: false, scrapeErrorMessage, and scrapedAt so you can audit which pages need retrying or proxy changes. If at least one URL succeeds, the run finishes SUCCEEDED with partial-failure rows preserved. If every valid URL fails, the Actor marks the run FAILED after writing those rows so an all-blocked or all-timeout run cannot look like a successful empty result. Each run also writes a RUN_SUMMARY key-value record with requested, extracted, saved, failed, all-failed, billing-mode, and spending-limit fields.
The runtime supports both the current rental model and a future pay-per-result model. Under pay per result, only successfully extracted article rows enter the billable default dataset. Failed URLs and spending-limit diagnostics go to the separate errorResults dataset and are never treated as paid results. This compatibility does not itself change the live Store price.
On Apify cloud, Residential proxy is enabled automatically unless you provide custom proxyUrls.
Use cases
- Monitor news articles, press mentions, and competitor content
- Build article datasets for research, analysis, or machine learning
- Enrich URLs with titles, authors, dates, summaries, and clean text
- Collect SEO metadata from article and blog pages
- Feed extracted article text into downstream AI, analytics, or database workflows
Related Actors on Apify Store
Pair this Actor with others from the same author for full content pipelines:
- YouTube Transcript Scraper Pro — video transcripts for the same research workflow
- News Source Crawler — discover article URLs from entire news sites, then extract with this Actor
- RSS Feed Scraper — monitor feeds and pass new article URLs here
Tips
- Use direct article URLs instead of homepages, category pages, or search result pages.
- If all URLs fail because of access restrictions, enable Apify Proxy and retry.
- Increase
requestTimeoutfor slow publishers or long-form pages. - Some JavaScript-heavy or paywalled pages may return partial text or fail if the article content is not present in the initial HTML.