Vraag


Acties:
  • 0 Henk 'm!

  • degroteleecher
  • Registratie: Februari 2016
  • Laatst online: 31-03 12:09
Heren/Dames,

In verband met de vrijwel dagelijks terugkerende standaardhandelingen om gegevens in te voeren op diverse websites, teneinde de benodigde gegevens te verkrijgen, dacht ik dat het wellicht overzichtelijker en eenvoudiger zou zijn om alle handelingen te combineren.

Schijnbaar was deze gedachte eenvoudiger dan de uitvoering. Dus na een avond zoeken, prutsen en proberen moet ik toch kleur bekennen en de hulptroepen van het forum inschakelen.

Mijn probleem/vraag:
Ik zou graag dmv excel met een aantal velden (postcode/huisnummer) informatie willen verkrijgen van een aantal websites. Is het mogelijk om een soort van dynamische webquery te maken in excel, waarna de gegevens in de spreadsheet verschijnen?

Voor mijn werk heb ik dagelijks zakelijke lasten en waarden nodig, op dit moment wordt dit nog verkregen door gebruik te maken van o.a. de website wozview.nl
Op deze site moeten de postcode/huisnummer e.d. ingevoerd worden, waarna de woz-waarde wordt weergegeven. Om dit te vereenvoudigen leek het mij handiger om dmv excel deze waarden in te voeren en deze vervolgens via een webquery de woz-waarde te laten ophalen. Deze woz-waarde wordt vervolgens binnen de spreadsheet weer gebruikt om diverse andere waarden te berekenen.

Wellicht dat ik in de verkeerde hoek zit te zoeken met webquery, maar Google en office.support geven weinig aanknopingspunten voor een oplossing.

Alle reacties


Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

Even kortgezegd: Nee, dat is niet zondermeer mogelijk.

Als je data wil verkrijgen op een makkelijke en gestandaardiseerde manier, dan zal de betreffende website een zogeheten API moeten aanbieden.
Die geeft je dan b.v. gestructureerde SOAP (XML) of JSON berichten terug.
Die bevatten velden die benoemd zijn. Denk aan HTML, waar de <B> tag betekend dat iets dikgedrukt (bold) moet zijn.
In XML en JSON kan je een veld ook gestructureerd voorzien van degelijke benamingen, maar dan kan je iets b.v. Postcode noemen.

Dat zal je dan weer in een Exceldocument moeten weten te proppen.
Bijvoorbeeld met een tool als SoapUI kan je API's aanspreken en de resultaten opslaan in een Excel document of een CSV bestand (tenminste, ik werk altijd met de betaalde variant, ReadyAPI/SoapUI NG Pro. Die kan het iig wel)
Dat is eigenlijk een tool voor het testen van de werking van een API, maar je kan er ook prima andere dingen mee doen waarbij je data van een API wil hebben.

Bieden ze geen API, dan wordt het al een flink stuk pittiger.
Dan zal je aan de slag moeten gaan met zogeheten Web Scraping.
In essentie betekent dat, dat je met een programmeertaal een webpagina ophaalt, eventueel met bepaalde opdrachten in de URL of in de HTTP Header (POST queries).
De pagina is een HTML document en dat is in de regel redelijk gestructureerd, dus kan je dan weer met een HTML DOM parser aan de slag om de velden er uit te plukken die je wil hebben. Bijvoorbeeld met zogeheten Xpaths en Regular Expressions.
En dan moet je dat weer exporteren naar een bestand.
Een oplossing die mij zo te binnen schiet is het gebruik van de taal Python met de packages Requests (voor het ophalen van webpagina's) en BeautifullSoup4 (voor het verwerken van de HTML).
Het resultaat daar van zet je in een array en gebruikt de CSV functies van Python om een CSV document te genereren van de array.
De CSV kan je dan weer openen in Excel.

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

  • Digital-DNA
  • Registratie: Juli 2000
  • Laatst online: 05-09 14:03

Digital-DNA

Gedigitaliseerd tot op het bot

Voor PHP is er PHPExcel waarmee je prima Excelbestanden kunt importeren en exporteren. Het liefst heb je een API waarmee je de gegevens kunt sturen en ontvangen. Ik zie dat wozview.nl met een JSON API werkt dus dat is mooi.

Als er geen API is kun je i.d.d. gaan scrapen, dit heb ik onlangs nog eens gedaan, maar dat is bij wozview.nl dus niet nodig.

Mooie van PHPExcel is dat je echte Excelbestanden kunt maken, inclusief formules, opmaak, tabbladen, printvriendelijk e.d., eigenlijk alles behalve grafieken. In principe kun je dan een Excelbestand uploaden met adressen en ditzelfde bestand aangevuld met woz-waardes weer downloaden.

Je moet hiervoor wel PHP kunnen natuurlijk, maar ev. zou ik er ook wel even naar kunnen kijken.

www.nintendocasemods.com


Acties:
  • 0 Henk 'm!

  • degroteleecher
  • Registratie: Februari 2016
  • Laatst online: 31-03 12:09
Wow...bedankt voor jullie snelle opmerkingen!

Ik ga vanavond wel even (proberen te) stoeien met jullie adviezen, in ieder geval heb ik nu een richting waarin ik kan denken.