OntwikkelingBetaalbeschermingDetails
- Revisies binnen het pakket zijn gratis.
- Reageer je niet binnen 3 dagen na levering, dan wordt het werk automatisch goedgekeurd.
Het geld wordt bij betaling gereserveerd en pas vrijgegeven als je het werk goedkeurt.

Voorbeeldresultaat
Parser of a garden tools supplier's catalog into Excel
What the result looks like
| Article | Name | Price | In stock | Weight | Photo |
|---|---|---|---|---|---|
| GT-1042 | Pruning shears, 20 mm | 18.90 | Yes | 0.24 kg | …/gt-1042.jpg |
| GT-1187 | Folding saw, 210 mm | 24.50 | Yes | 0.31 kg | …/gt-1187.jpg |
| GT-2210 | Hedge shears, wavy blade | 39.00 | No | 1.10 kg | …/gt-2210.jpg |
| GT-3305 | Hand trowel, stainless | 9.80 | Yes | 0.18 kg | …/gt-3305.jpg |
| GT-4120 | Garden hose 25 m, 1/2" | 42.00 | Yes | 2.90 kg | …/gt-4120.jpg |
The file in the example has 1,236 products from 52 list pages.
A part of the code
def product_links(list_url: str) -> Iterator[str]:
"""Product page links from every page of the list, following 'Next'."""
url: str | None = list_url
while url:
page = fetch(url)
for card in page.select("div.product-card a.title"):
yield urljoin(url, card["href"])
next_link = page.select_one("a.pagination-next")
url = urljoin(url, next_link["href"]) if next_link else None
def fetch(url: str) -> BeautifulSoup:
"""One open page, at a polite pace: a pause between requests and a few tries on errors."""
for attempt in range(3):
time.sleep(settings.delay_seconds)
response = session.get(url, timeout=30)
if response.status_code == 200:
return BeautifulSoup(response.text, "html.parser")
log.warning("%s answered %s, try %d of 3", url, response.status_code, attempt + 1)
raise ScraperError(f"{url} did not open after 3 tries")
Files: a ZIP archive with scraper.py, settings.ini (the start page, the pause between requests, the file name), requirements.txt and a README on installing and running it. It reads only open pages, one every 2 seconds, and checks the site's robots.txt first. The client runs it on their own computer.
Client: an online garden shop that resells a supplier's tools; the supplier has an open catalog on its website but no price list file. Task: go through the catalog's list pages, open every product page and save the article number, name, price, stock, weight and main photo link to Excel, to compare prices once a week.
De klant en alle details zijn verzonnen.
Over deze dienst
Voor een makelaarskantoor, een belegger of een koper verzamelt deze parser openbare woningadvertenties in één tabel: type, prijs, prijs per vierkante meter als die getoond wordt, oppervlakte, kamers, verdieping, stad en wijk, straat zoals de advertentie die geeft, plaatsingsdatum, link en links naar foto's. Stel op de site de zoekopdracht in met je filters en stuur ons die link, één advertentie en een of twee pagina's opgeslagen vanuit je browser. Je krijgt Python-code, een instellingenbestand en een README, en je draait hem op je computer. Gegevens van mensen blijven erbuiten: geen namen, e-mailadressen of telefoonnummers van eigenaren of makelaars, alleen de link naar de advertentie. Hij leest openbare pagina's in een rustig tempo en logt nooit in en omzeilt geen captcha's of beveiliging. Jij bepaalt of de voorwaarden van de site het toestaan, en een latere wijziging van de opmaak vraagt om een update.
Wat is inbegrepen
- Wat je krijgtEen ZIP-archief met de Python-code, een instellingenbestand en een README met stapsgewijze instructies; de code staat ook op de bestelpagina.
- Jouw zoekopdracht, jouw filtersBegint bij een zoeklink die je op de site instelt
- Getallen om te sorterenPrijs, oppervlakte en verdieping in aparte kolommen
- Geen contactgegevensNamen en telefoonnummers van verkopers en makelaars worden weggelaten
- Links naar foto'sLinks naar de foto's van de advertentie, niet de bestanden
- Rustig tempoEen pauze tussen pagina's, in te stellen in de instellingen
Hoe het werkt
- 1ZoekopdrachtJe stelt de zoekopdracht in en stuurt de link en een opgeslagen advertentie
- 2ParserWij schrijven de code en de handleiding om hem uit te voeren
- 3StartenJe start hem en controleert de eerste rijen tegen de site
- 4WijzigingenJe vraagt binnen je pakket om wijzigingen en stuurt een eventuele foutmelding mee
Wat we van je nodig hebben
De woningsite en een link naar een zoekopdracht met je filters (stad, type, prijsklasse), één advertentiepagina en ongeveer hoeveel advertenties de zoekopdracht toont. De velden die je nodig hebt in de volgorde van je tabel, bijv. type, prijs, oppervlakte, kamers, verdieping, wijk, plaatsingsdatum, link. Een of twee van die pagina's opgeslagen vanuit je browser (Bestand > Pagina opslaan als) of screenshots. CSV of Excel.
We vragen je:
- Welke site en zoekopdracht?
- De velden die je nodig hebt
- Ongeveer hoeveel advertenties?
- Wat moet hij nog meer doen?
Pakketten vergelijken
| Pakketten | BasisAdvertenties uit je links€ 20 | StandaardZoekresultaten en advertenties€ 39 | PremiumTot 3 woningsites€ 68 |
|---|---|---|---|
| Levertijd | 1 dag | 2 dagen | 3 dagen |
| Revisies | 1 | 2 | 3 |
| Sites | 1 | 1 | tot 3 |
| Soorten pagina's | 1 | 2 (zoekresultaten en advertentie) | tot 3 |
| Velden | tot 10 | tot 25 | tot 25 per stuk |
| Loopt de pagina's van een overzicht door | Nee | Ja | Ja |
| Resultaatbestand | CSV | Excel of CSV | Excel, CSV of JSON |
| Dubbele rijen verwijderd, gaat verder waar hij stopte | Nee | Nee | Ja |
| Bestellen Basis | Bestellen Standaard | Bestellen Premium |
Betaalbescherming
Je betaalt bij het bestellen, maar het geld wordt alleen vrijgegeven voor goedgekeurd werk.
- Vaste prijsDe prijs van het pakket verandert niet meer nadat je hebt betaald.
- Het geld wordt gereserveerdBij betaling wordt het bedrag alleen gereserveerd. Het gaat pas naar de dienst als je het werk goedkeurt.
- Gecontroleerd vóór leveringElk resultaat doorloopt een kwaliteitscontrole voordat het bij jou komt, en je ziet het op de bestelpagina voordat je het goedkeurt.
- Gratis revisiesVraag wijzigingen binnen je briefing aan, zo vaak als het pakket toestaat.
- Goedkeuring na 3 dagenKeur je het werk binnen 3 dagen na levering niet goed en vraag je ook geen wijzigingen, dan wordt het automatisch goedgekeurd. Schrijf je na levering in de chat van de bestelling, dan wacht de bestelling; zodra we hebben geantwoord, kunnen we de 3 dagen opnieuw laten ingaan en melden we dat in de chat.
- Opnieuw doen of volledige terugbetalingPast het resultaat niet bij je briefing en hebben de revisies dat niet opgelost, of duurt het werk meer dan twee keer zo lang als de levertijd, schrijf dan in de chat van de bestelling: we doen het werk opnieuw of betalen het volledige bedrag terug.
Vragen en antwoorden
Kan ik het telefoonnummer van de verkoper of makelaar krijgen?
Nee. De parser verzamelt geen persoonsgegevens: geen namen, e-mailadressen of telefoonnummers van mensen. Elke rij heeft de link naar de advertentie, waar je contact kunt opnemen met de verkoper op de manier die de site aanbiedt.
Laat hij prijswijzigingen en verwijderde advertenties zien?
Elke run slaat een nieuwe tabel met de datum op, zodat je twee runs naast elkaar kunt leggen in Excel. De parser zelf volgt of meldt geen wijzigingen.
Welke woningsites kan hij lezen?
Openbare sites die advertenties tonen zonder inloggen of captcha. Veel grote portalen verbieden verzamelen in hun voorwaarden: controleer ze, de beslissing is aan jou. Hij leest geen Google, Amazon, LinkedIn of sociale netwerken.
Kan hij de foto's zelf opslaan?
Hij slaat links op. De foto's zijn van wie ze heeft gemaakt, dus de bestanden worden alleen opgeslagen als je ze mag gebruiken, bijvoorbeeld voor je eigen advertenties.
Staat je antwoord er niet bij?


