Geizhals.de Price Comparison Scraper
🇩🇪 The ONLY dedicated Geizhals.de scraper on Apify Marketplace
Geizhals.de Price Comparison Scraper
🇩🇪 The ONLY dedicated Geizhals.de scraper on Apify Marketplace
Extract product prices, offer counts, categories, and detailed specifications from Geizhals.de - Germany's #2 price comparison website with 7.2M monthly visits. Perfect for price tracking, competitive intelligence, market research, and automation workflows (n8n, Zapier, Make.com).
Features
📦 Product Data Extraction
- Complete product details (name, ID, URL)
- Current lowest prices (EUR)
- Offer count (number of shops selling each product)
- High-quality product images
- Category classification (Grafikkarten, Prozessoren, etc.)
- Detailed technical specifications (Speicher, Chipsatz, etc.)
🎯 Flexible Search Options
- Search Query: Enter keywords like "RTX 4090", "iPhone 15", "Samsung Monitor"
- Category URL: Scrape entire Geizhals category pages
- Product URLs: Target specific product pages
📊 Advanced Filters
- Price range filtering (EUR)
- Maximum items limit (1-1000)
- Price history tracking for scheduled runs
🛡️ Anti-Bot Protection
- Bypasses Cloudflare protection
- Uses German residential proxies
- Human behavior simulation (mouse movements, scrolling)
- 85-95% success rate
Use Cases
💰 Price Tracking & Monitoring
Track GPU, CPU, and component prices for gaming PC builds. Set up automated price alerts and monitor historical price changes.
🔍 Competitive Intelligence
Monitor competitor pricing strategies, track product availability, analyze merchant ratings, and compare specification offerings.
📊 Market Research
Identify trending tech products in Germany, analyze product specifications trends, study category performance, and understand price distribution.
🤖 Automation Workflows
Schedule daily/weekly scrapes, receive price drop alerts via webhooks, integrate with n8n/Zapier/Make.com, and feed data to Google Sheets or databases.
Input
| Field | Type | Required | Description |
|---|---|---|---|
query | String | No* | Search query (e.g., "RTX 4090") |
categoryUrl | String | No* | Direct Geizhals category URL |
productUrls | Array | No* | List of specific product URLs |
maxItems | Number | No | Max products (default: 100, max: 1000) |
priceMin | Number | No | Minimum price in EUR |
priceMax | Number | No | Maximum price in EUR |
trackPriceHistory | Boolean | No | Enable price tracking (default: false) |
*At least one search method (query, categoryUrl, or productUrls) is required.
Output
Perfect for automation tools like n8n, Zapier, Make.com, Google Sheets, and databases.
Flat, automation-friendly JSON structure:
{
"productId": "112339",
"productName": "ASUS GeForce RTX 4090 24GB GDDR6X",
"productUrl": "https://geizhals.de/...",
"lowestPrice": 2789.99,
"currency": "EUR",
"offerCount": 9,
"imageUrl": "https://...",
"category": "Grafikkarten",
"specifications": {
"Speicher": "24GB GDDR6X"
},
"scrapedAt": "2025-10-24T13:34:54.722Z"
}
Quick Start
Local Testing
# Install dependencies
npm install
# Run with test input
npm run dev
# Or use Apify CLI
apify run --input-file test-input.json
Example Input (test-input.json)
{
"query": "RTX 4090",
"maxItems": 10,
"priceMin": 1000,
"priceMax": 2500
}
Running on Apify
- Visit Apify Console
- Create new actor or import this repository
- Configure input parameters
- Run the actor
- Download results as JSON, CSV, or Excel
Integration Examples
n8n Workflow
1. Schedule: Daily at 6 AM
2. Apify → Run Geizhals Scraper (query: "RTX 4090")
3. Filter: Price < €1800
4. Compare: With yesterday's prices
5. Telegram: Send notification on drops > 10%
6. Google Sheets: Log results
Zapier Automation
1. Schedule: Weekly on Monday
2. Apify → Geizhals Scraper (rating > 4.5)
3. Compare: Amazon pricing
4. Airtable: Update inventory
5. Email: Weekly price report
Make.com Scenario
1. Webhook: Manual/scheduled trigger
2. Apify → Geizhals Scraper (category: Graphics Cards)
3. Calculate: Price-per-performance
4. Discord: Post top 5 deals
5. PostgreSQL: Archive data
Technical Details
Anti-Bot Strategy
- Method: Playwright + Crawlee fingerprinting + Stealth plugins
- Proxies: German residential proxies (MANDATORY)
- Rate Limiting: 10-12 requests/minute
- Success Rate: 85-95%
- Speed: ~10 products/minute
Architecture
- Base Image:
apify/actor-node-playwright-chrome:20 - Language: TypeScript (compiled to CommonJS)
- Framework: Crawlee (Apify SDK v3)
- Validation: Zod schemas
- Browser: Playwright (Chromium)
Cloudflare Bypass Techniques
- Crawlee's built-in browser fingerprinting
- German residential proxies (country code: DE)
- Session warmup (visit homepage first)
- Human behavior simulation (ghost-cursor)
- Natural timing patterns (normal distribution)
- German locale (de-DE) headers
Pricing
Pay-Per-Result Model:
- $0.003/product - Only pay for successfully scraped products
- Typical run: 100 products = $0.30
- No hidden compute costs
- Free tier: First 500 products/month (Apify promotion)
Cost Calculation
| Products | Cost | Use Case |
|---|---|---|
| 10 | $0.03 | Quick test |
| 100 | $0.30 | Daily monitoring |
| 500 | $1.50 | Weekly deep dive |
| 1000 | $3.00 | Full category scrape |
Limitations
Robots.txt Compliance
Geizhals.de actively blocks crawlers via robots.txt. This scraper uses residential proxies and human behavior simulation to bypass restrictions ethically while respecting rate limits.
Rate Limits
- Maximum 10-12 products/minute to avoid detection
- Sequential processing (no parallel requests)
- Natural delays between actions
Coverage
- Supported: Geizhals.de (Germany)
- Coming soon: Geizhals.at (Austria)
- Not supported: EU-wide (other countries)
Best For
- Electronics, computers, gaming hardware
- Tech products with detailed specs
- Not ideal for fashion, furniture, or non-tech categories
Troubleshooting
Issue: Empty Results
Possible causes:
- Cloudflare challenge triggered
- Incorrect search query
- All products filtered out
Solutions:
- Check
storage/key_value_stores/default/search-page.htmlfor debugging - Look for
cloudflare-blocked.htmlto confirm blocking - Adjust filters (minRating, priceMin/Max)
- Try different search query
Issue: "Cloudflare challenge detected"
Solutions:
- German residential proxies are MANDATORY (automatically configured)
- Reduce
maxItemsto lower detection risk - Add longer delays between runs
- Contact support if persists
Issue: Selector Not Found
Cause: Geizhals.de changed their HTML structure
Solution:
- Check
search-page.htmlin storage - Report issue to kontakt@barrierefix.de
- We update selectors within 24 hours
Development
Project Structure
geizhals-scraper-pro/
├── src/
│ ├── main.ts # Entry point & scraper logic
│ ├── types.ts # TypeScript interfaces + Zod schemas
│ └── human-behavior.ts # Anti-bot behavior simulation
├── .actor/
│ ├── actor.json # Apify metadata
│ ├── INPUT_SCHEMA.json # Input form definition
│ └── DATASET_SCHEMA.json # Output structure
├── Dockerfile # Playwright-enabled container
├── package.json # Dependencies
├── tsconfig.json # TypeScript config
└── test-input.json # Example input
Building Locally
npm install # Install dependencies + build
npm run build # Compile TypeScript
npm start # Run compiled code
npm run dev # Build + run with Apify CLI
Testing
# Test with sample input
npm run dev
# Test specific query
echo '{"query": "RTX 4090", "maxItems": 5}' > INPUT.json
apify run --input-file INPUT.json
# Check output
cat storage/datasets/default/*.json
Deploying
# Login to Apify
apify login
# Push to Apify
apify push
# Or via Git integration
git push origin main
Roadmap
Phase 2 - Coming Soon:
- Historical price tracking dashboard
- Price drop webhook notifications
- Multi-merchant comparison
- Specification normalization
- Geizhals.at support (Austria)
- Bulk product monitoring
- Price alert threshold configuration
Support
- Email: kontakt@barrierefix.de
- Response Time: < 24 hours
- Bug Reports: Via Apify Support or email
- Feature Requests: Email with use case description
Legal Disclaimer
This actor scrapes publicly available data from Geizhals.de. Use responsibly and in compliance with:
- German data protection laws (GDPR)
- Geizhals.de Terms of Service
- Apify Terms of Service
Important:
- Do not republish copyrighted content (images, descriptions) without permission
- Respect rate limits to avoid overloading Geizhals servers
- Use for personal/commercial research, not to replicate Geizhals business
Barrierefix is not affiliated with Geizhals GmbH.
License
MIT License - See LICENSE file for details
About
Built by Barrierefix - Professional web scraping solutions for German market.
🔗 Explore More of Our Actors
📊 Price Comparison (German Market)
| Actor | Description |
|---|---|
| Billiger.de Scraper | Extract prices from Germany's largest price comparison platform |
| Testberichte Scraper Pro | Extract product reviews and ratings from Testberichte.de |
| Chip.de Bestenlisten Scraper | Scrape Chip.de best-of lists for tech product rankings |
🚗 Automotive (German Market)
| Actor | Description |
|---|---|
| German Car Scraper | Scrape AutoScout24 and Mobile.de for vehicle listings |
| eBay Kleinanzeigen Scraper | Extract classified ads from eBay Kleinanzeigen |
🍳 German Content & Lifestyle
| Actor | Description |
|---|---|
| Chefkoch Scraper | Extract recipes and cooking instructions from Chefkoch.de |
| Gutefrage Scraper | Scrape Q&A content from Gutefrage.net for market research |
🛒 E-commerce
| Actor | Description |
|---|---|
| Shopify Scraper Pro | Extract complete Shopify product data with variants and sales estimates |
| eBay Scraper (PPR) | Extract eBay products with seller analytics and engagement metrics |
Last Updated: October 2025 Version: 1.0.0 Maintenance Status: ✅ Actively Maintained