You are here: home » projects » 6pp » scraper

Steden, postcodes, straten en geo-coördinaten database

Freeing even more postcodes?

Adreslijsten via Excel

Winkelketens hebben vaak een lijst van vestigingen online staan. De Free Record Shop toont 173 vestigingen met adresgegevens.

Vanuit de webbrowser is de adreslijst te copy-pasten naar Excel. Zorg dat de volgorde van kolommen overeenkomt met:

Sla nu de spreadsheet op als een CSV bestand.
Het CSV bestand kan ingelezen worden door dit Python script (parse_universal.py). Daarmee worden de gegevens opgeschoond en verzonden naar 6PP.

In het geval van de Free Record Shop resulteerde dit in 1 nieuwe 4PP, 104 nieuwe 6PP's en 172 nieuwe netnummers bij plaatsen.

Scrape tutorial

Er zijn veel websites waar mensen zelf adressen hebben achtergelaten. Deze zijn eenvoudig via zoekmachines te vinden.

Oriëntatie

Wanneer je een website hebt gevonden met daarop bijvoorbeeld jouw eigen postcode. en deze website bevat nog meer postcodes, controleer of deze reeds gescraped of uitgesloten is.

Scrapen

In dit voorbeeld wordt de website zuka.nl gebruikt.
Met dit Python script (zuka_nl_yahoo.py) worden via de Yahoo! webservice alle adressen gevonden. Het 'downloaden' is vrij eenvoudig, want ze zitten in de webpagina titel. Het script maakt een CSV bestand met adres, postcode en woonplaats van de gevonden adressen. De uitvoer is vaak van matige kwaliteit:

kerkweg 18,1432 EJ,Amstelveen/Aalsmeer

Oppoetsen en simuleren

Door slim van de huidige data in 6PP gebruik te maken (1432 is reeds bekend als postcode in Aalsmeer), het huisnummer te verwijderen en de straatnaam met hoofdletter te laten beginnen is de data opgepoetst en klaar voor verzending naar 6PP.
Met dit Python script (parse_zuka_nl.py) wordt het oppoetsen en verzenden uitgevoerd. Standaard wordt verzending gesimuleerd om nog een laatste keer over de gegevens heen te kunnen kijken en de onjuist/slechte in het CSV bestand handmatig te verwijderen.

Opsturen naar 6PP

Configureer de source parameters en schakel de simulatie uit om de gegevens daarwerkelijk naar 6PP te sturen.

source_name = "Kees van den Broek <kvdb at kvdb.net>"
source_source = "Zuka.nl <www.zuka.nl>"
# If 'simulate' is True, no updates are sent to the 6PP webservice.
# Set to False when you've double-checked what's going to be sent.
simulate = False

De gegevens zijn nu opgenomen in 6PP:

...
"street": "Kerkweg"
"fourpp": 1432,
"chars": "EJ"
"city_name": "Aalsmeer"
"province_name": "Noord-Holland"
"source": "Zuka.nl <www.zuka.nl>"
...
last modified on 2009-07-18 @ 13:32