AS
Apify Store
/eloquent_mountain/ai-web-scraper-extract-data-with-ease
Ai Web Scraper - Extract Data With Ease
Ai Web Scraper enables scraping for everyone, including non-techies! It uses Google's Gemini LLM to scrape websites with natural language commands. It dynamically extracts data, no selector input need
liveasyncunknown~30s typical
aiautomationagentswebextractwithease
$0.013
per result + $0.005 call
plus $0.001 platform fee per run
Actor charges $0.01 per result; Cracked adds 25% plus a $0.005 call fee
Bring your own Apify Store key: provider portion drops to $0.
$Set up https://cracked-ai-pearl.vercel.app/SKILL.md, then use Cracked to run apify /eloquent_mountain/ai-web-scraper-extract-data-with-ease for me.
Input
| Field | Type | Description |
|---|---|---|
| start_urls* | array | Provide one or more URLs |
| instructions | string | Desired items to scrape in natural language. Example: 'product description and product price'. Required for the default 'items' output mode; ignored by 'chunks' mode except when following links, where it guides which links to follow. |
| output_mode | string (items | chunks) | How results are shaped. 'items' (default) uses vision + Gemini to extract the fields you describe. 'chunks' turns the actor into a RAG loader: it reads each page's clean text and emits one dataset row per embeddable chunk (url, chunkIndex, headingPath, text, tokenCount, meta) — ready for LangChain / LlamaIndex and vector-DB ingestion. Chunks mode makes no vision/LLM calls, so it is fast and cheap. default "items" |
| chunk_size | integer | Target size of each chunk in tokens (only used in 'chunks' output mode). Token counts are approximate. Match this to your embedding model's context window. default 512 |
| chunk_overlap | integer | Approximate number of tokens of trailing context carried into the next chunk (only used in 'chunks' output mode). Overlap preserves continuity across chunk boundaries for better retrieval. Must be smaller than the chunk size. default 64 |
| output_fields | array | Define the exact output columns instead of letting the AI derive them from the instructions. Guarantees stable column names across runs and saves one LLM call. Array of objects, e.g. [{"name": "price", "type": "number", "description": "numeric price without currency symbol"}]. Supported types: string, number, integer, boolean (default: string). Only "name" is required. |
| follow_links | boolean | Treat the start URLs as listing/category pages: the AI selects links that lead to detail pages matching your instructions (e.g. product pages) and extracts the data from each detail page instead of from the listing itself. default false |
| max_followed_links | integer | Maximum number of detail-page links to follow per start URL (only used when 'Follow links to detail pages' is enabled). Each visited detail page generates its own vision API calls. default 10 |
| max_pages | integer | Maximum number of pages to process per start URL by clicking 'next page' / 'load more' controls. Set to 1 to disable pagination. The control is auto-detected, or you can provide a CSS selector below. default 1 |
| pagination_selector | string | CSS selector of the 'next page' or 'load more' button/link. Leave empty to let the actor auto-detect it (rel=next links, common button texts, AI fallback). |
| proxyConfiguration | object | Use Apify Proxy or custom proxies to access sites that block datacenter traffic (Cloudflare, Akamai, etc.). |
| has_infinite_scroll | boolean | Enable if the page has infinite scrolling (loads more content as you scroll down) default false |
| above_fold_only | boolean | Only capture content visible without scrolling (above the fold) default false |
| save_screenshots | boolean | Save screenshots to key-value store for debugging purposes default false |
| handle_cookie_consent | boolean | Automatically detect and click cookie consent buttons. Disable to skip this step and speed up runs on pages without consent banners. default true |
| gemini_model | string (gemini-3.1-flash-lite | gemini-2.5-flash | gemini-2.5-pro) | Gemini model used for extraction. Flash-Lite is the fastest and cheapest, Flash is more capable, Pro is the most capable but slowest and most expensive. default "gemini-3.1-flash-lite" |
| device_type | string (desktop | mobile) | Choose viewport simulation type default "desktop" |
| mobile_device_model | string (iPhone 15 Pro Max | iPhone 15 Pro | iPhone 15 Plus | iPhone 15 | iPhone SE (2022) | Samsung Galaxy S24) | Specific mobile device to emulate (only used when device type is mobile) default "iPhone 15" |
| custom_viewport_width | integer | Custom viewport width in pixels (only used when mobile device model is 'Custom') default 393 |
| custom_viewport_height | integer | Custom viewport height in pixels (only used when mobile device model is 'Custom') default 852 |
| max_concurrent_screenshots | integer | Maximum number of screenshots to process simultaneously (higher values = faster but more resource intensive) default 4 |
| screenshot_timeout | integer | Timeout in seconds for each screenshot analysis (increase if screenshots are complex) default 60 |
Call it
curl
curl https://cracked-ai-pearl.vercel.app/v1/run \
-H "Authorization: Bearer ck_live_..." -H "content-type: application/json" \
-d '{"provider":"apify","endpoint":"/eloquent_mountain/ai-web-scraper-extract-data-with-ease","input":{"start_urls":["https://www.ikea.com/nl/nl/p/onsevig-vloerkleed-laagpolig-veelkleurig-60497078/","https://www.ikea.com/nl/nl/p/vedbak-vloerkleed-laagpolig-lichtgrijs-40528900/"],"instructions":"Give me the product price and product title","output_fields":[],"proxyConfiguration":{"useApifyProxy":false}},"wait":false}'poll
curl "https://cracked-ai-pearl.vercel.app/v1/runs/<runId>?wait=30" -H "Authorization: Bearer ck_live_..."cli
npx cracked-ai run -p apify -e /eloquent_mountain/ai-web-scraper-extract-data-with-ease -i '{"start_urls":["https://www.ikea.com/nl/nl/p/onsevig-vloerkleed-laagpolig-veelkleurig-60497078/","https://www.ikea.com/nl/nl/p/vedbak-vloerkleed-laagpolig-lichtgrijs-40528900/"],"instructions":"Give me the product price and product title","output_fields":[],"proxyConfiguration":{"useApifyProxy":false}}' -w 120mcp
run_tool({ provider: "apify", endpoint: "/eloquent_mountain/ai-web-scraper-extract-data-with-ease", input: {"start_urls":["https://www.ikea.com/nl/nl/p/onsevig-vloerkleed-laagpolig-veelkleurig-60497078/","https://www.ikea.com/nl/nl/p/vedbak-vloerkleed-laagpolig-lichtgrijs-40528900/"],"instructions":"Give me the product price and product title","output_fields":[],"proxyConfiguration":{"useApifyProxy":false}}, wait: false })Try it
Runs against your signed-in workspace balance. Sign in if you have not.