Kleinanzeigen Scraper — Germany, Numeric Price Parsed
Pricing
from $1.01 / 1,000 results
Kleinanzeigen Scraper — Germany, Numeric Price Parsed
Scrape Kleinanzeigen.de classified ads with numeric price parsed from German number format, negotiable/giveaway flags, and split postal-code-plus-city location.
Pricing
from $1.01 / 1,000 results
Rating
0.0
(0)
Developer
Axery
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Kleinanzeigen Search Scraper (Germany)
Scrapes classified ads from kleinanzeigen.de over plain HTTP — no browser, no login. The search results page has no JSON endpoint, and its JSON-LD covers only image metadata — not price, title, or location — so this Actor parses the HTML ad cards directly.
German number format, handled correctly
Price is displayed like "900 € VB" — German convention, where a dot is a thousands separator and a comma is the decimal point, the reverse of English. A naive parse would turn "1.500 €" into 1.5 instead of 1500. This Actor gets the convention right and additionally recognizes two markers sellers commonly add:
"price": {"amount": 900.0, "currency": "EUR","is_negotiable": true, "is_giveaway": false,"raw": "900 € VB"}
is_negotiable— theVB(Verhandlungsbasis, "starting point for negotiation") suffix.is_giveaway—"zu verschenken"listings, which carry no amount at all.
Location, split
The card shows "85221 Dachau" as one string. This Actor splits it:
"location": { "raw": "85221 Dachau", "postal_code": "85221", "city": "Dachau" }
No free-text search parameter — Kleinanzeigen routes by URL path
Like several other targets in this suite, there's no ?q= alone. Browse kleinanzeigen.de, run the search you want, and copy the path segment:
{ "categoryPaths": ["s-fahrrad/k0", "s-berlin/s-wohnung-mieten/k0l3331"] }
The second example shows the site's own combined keyword+location+category paths — anything you can build by searching on the site works here.
Input
| Field | Type | Notes |
|---|---|---|
categoryPaths | array | Kleinanzeigen URL path segments. |
maxItems | integer | Per path. 0 = unlimited, bounded by pagination depth. |
incremental | boolean | Only ads not seen in previous runs. |
proxyConfiguration | object | Datacenter is normally enough — no anti-bot layer encountered. |
Known limits
- Card data only, no full listing page. Title, a short description snippet, price, location and the lead image — not the full ad body or seller contact details. A second-tier "detail" Actor could add that with a per-ad fetch, following the same pattern as Bayt in this suite.
- No structured category taxonomy in the output. Kleinanzeigen encodes category in the URL path you provide, not in the card itself.
- Price parsing assumes German formatting. If Kleinanzeigen ever serves a locale variant with different number conventions, this parser would need adjusting.
Local development
pip install -r requirements.txtpython test_local.py "s-fahrrad/k0" --max 20 --out sample_output.jsonpython test_local.py "s-berlin/s-wohnung-mieten/k0l3331" --max 10
sample_output.json in this folder is real output from a live run, kept so the schema can be reviewed without running anything.