Ga naar inhoud
  • 0

gegevens van webpagina parsen


Bruno

Vraag

12 antwoorden op deze vraag

Aanbevolen berichten

  • 0

Ik weet niet of het je al helpt, maar dit is de xml-file die binnen gehaald wordt met alle gegevens (ik vermoed dat het je daar om gaat?)

Ik meen me ter herinneren dat er wel een import van XML mogelijk is, maar dat je zelf een XSLT stylesheet moet toevoegen.

 

http://www.gia.edu/otmm_wcs_int/proxy-report/?ReportNumber=2155776312&url=https://myapps.gia.edu/ReportCheckPOC/pocservlet?ReportNumber=2155776312

 

Als je puur uit html moet halen, vind ik het altijd wel wat worstelen om alles juist te krijgen.

(Al zie ik in de broncode wel id's staan bij elke waarde, dus wie weet?)

 

Hou ook rekening dat dit enorm lang inlaadt, soms tot 40 seconden.

Link naar reactie
  • 0

Beste Felix en elmystica,

 

Dit is exact waar ik naartoe wil.

Het grote probleem is dat ik niks van XML en XSLT afweet.

Daar gaan we aan werken want het bestandje van Felix is zeer indrukwekkend.

 

Het eerste mysterie is hoe je aan de url komt die verwijst naar de XML-pagina.

 

http://www.gia.edu/otmm_wcs_int/proxy-report/?ReportNumber=2155776312&url=https://myapps.gia.edu/ReportCheckPOC/pocservlet?ReportNumber=2155776312

Ik zoek op de html page source naar een link maar daar vind ik niets.

 

En dan de opbouw van de xslt-pagina: Moet je die zelf aanmaken of kan je die ook ergens uitfilteren ?

 

Parsen uit HTML is inderdaad geen optie . Ik wist dat er beter manieren.

In ieder geval een meer dan goeie aanzet.

 

Alvast reuze bedankt .

Link naar reactie
  • 0

De basislink is:

http://www.gia.edu/otmm_wcs_int/proxy-report/?ReportNumber=#{gia_number}&url=https://myapps.gia.edu/ReportCheckPOC/pocservlet?ReportNumber=#{gia_number}

Daarin vervang je de tekst

#{gia_number}

voor het report-nummer dat je zoekt. In het voorbeeld dat elmystica hierboven gaf staat het nummer dat jijzelf hebt gegeven in de voorbeeld-url die jij in de webviewer werkend hebt......

2155776312

en zo kom je aan de url van de xml:

http://www.gia.edu/otmm_wcs_int/proxy-report/?ReportNumber=2155776312&url=https://myapps.gia.edu/ReportCheckPOC/pocservlet?ReportNumber=2155776312

 

Waar elmystica de basis-url vandaan heeft gehaald weet ik niet, maar door te zoeken met google op de woorden:

gia.edu+xml+report+check

kwam ik o.a op github terecht met het volgende artikel:

https://github.com/chadmoone/lucy/blob/master/lib/tasks/gia.rake

en in het rails-scriptje wat daar staat, staat ook deze url.

 

De xslt zal je zelf moeten maken, maar felix heeft een hele goede voorzet gegeven. Als je meer gegevens nodig hebt, hoef je alleen maar het x-path van die gegevens te weten .... een voorbeeldje: voor de inscriptie hoef je alleen maar het veldje INSCRIPTION in de xslt toe te voegen door binnen het element ROW de volgende code:


toe te voegen en voor de correctheid moet je in het element METADATA nog een veld toevoegen (zonder werkt overigens prima, maar is wat onhandig bij het aanwijzen van je mapping):


moet jou zo toch lukken lijkt me :D

Link naar reactie
  • 0

Het bestand dat hier werd gepost was exact wat ik nodig heb.

Ik heb nu GIA als voorbeeld genomen maar zo zijn er een 10-tal websites waar ik op deze manier gegevens van zou willen afhalen.

Ik deed het meestal via de html maar dat is niet handig, niet foutloos en enorm arbeidsintensief.

Dit is "de" manier.

 

Om de geposte manier onder de knie te krijgen moet ik dus starten bij het vinden van de xml-file .

Als je die niet hebt dan houdt het eigenlijk al op.

 

Ik heb de html-pagina van de GIA volledig uitgeplozen maar vind de link niet naar de xml.

Als ik begrijp waar ik de link kan vinden, bvb. in de - sectie, dan zou ik dit ook kunnen toepassen bij de andere sites.

 

Bedankt voor de reacties

Link naar reactie
  • 0

Hallo Bruno,

 

Je eerste webpagina gaf me bij het inladen een spinning wheel, wat aanduidde dat hij iets inlaadde. Dus had ik al een vermoeden dat er via JS extern gegevens werden ingeladen. Ik hoopte oorspronkelijk op JSON, maar XML is ook ok, nietwaar.

 

In Firefox Debugger zit er een panel "Net".

Daar keek ik wie er even lang over deed om in te laden als dat ik de spinner zag. Vervolgens kijk je welk request dat is (en dus welke url) en dan ga je gewoon zien welk antwoord hij kreeg, en dat bleek XML.

 

Een klassieke site gaat dat niet zo snel gebruiken voor zoiets, aangezien dat meestal uit eigen database komt en dan is een serverside script bij het laden van de pagina al even vlot.

 

HRD Antwerp is zo eentje, dus die kan je niet zo klassiek inladen, vrees ik.

 

IGI Worldwide heeft dan weer wel iets gelijkaardig: zij roepen deze pagina aan: http://www.igiworldwide.com/searchreport_postreq.php?r=101423721&_=1411079643460. Helaas geeft dit niet de rauwe data, maar reeds in een html-table gegoten. Logisch, want dit werkt sneller dan eerst alles versturen naar de client en dan gaan implementeren in een html-layout.

 

Overigens, als je opzet een beetje volume nodig heeft, durven ze je wel eens blocken als je dat doet (been there :( ). Vraag bedrijven gerust eens naar een API, vaak is die er of heel eenvoudig inwerkbaar.

Link naar reactie
  • 0

Ik heb me wat verdiept in het voorbeeld en de uitleg van de forumleden hier en zelf een .xslt gemaakt .

De velden worden geimporteerd in een lege database maar de records niet.

 

De xml is geexporteerd uit het bekende boekhoudpakket Expert+ van Kluwer.

De bijgevoegde xml is een kein deel van de volledige. Enkel om de structuur te laten bekijken.

Het is een print van een aankoopdagboek en begint met een hoofding,daarna de boekingen en dan de centralisatie.

 

Ik heb ergens in de xslt "Records=1000" gezet ipv 1 en hetzelfde bij Recordid=1000 .

Misschien zit daar de fout ? Al heb ik het ook geprobeerd op records=1 .

Bruno.zip

Link naar reactie

Doe mee aan dit gesprek

Je kunt dit nu plaatsen en later registreren. Indien je reeds een account hebt, log dan nu in om het bericht te plaatsen met je account.

Gast
Beantwoord deze vraag...

×   Geplakt als verrijkte tekst.   Plak in plaats daarvan als platte tekst

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...