Jun.19

Html2Xhtml & Screen Scraping

HTML.pngWil je echt leuk informatie van het web plukken dan is die vaak niet toegankelijk via RSS. Neem bijvoorbeeld de site jaap.nl. Zoek je een koophuis dan moet je bij Jaap zijn en niet meer bij Funda. Want wat doet Jaap, Jaap scraped alle webpagina’s van Funda om de inhoud vervolgens op hun eigen website te publiceren. Scrapen is een methode om de voor jou doel relevante gegevens uit een (in dit geval) webpagina “te vissen”. Beleg je, dan is het bijvoorbeeld leuk om aan koersinformatie te komen. Denk maar niet dat die als RSS beschikbaar is. De gegevens zijn wel beschikbaar op openbaar toegankelijke webpagina’s van bijvoorbeeld morningstar.nl.

Nu is het voordeel van RSS dat het een XML standaard is en XML is gemakkelijk te gebruiken. HTML is echter een heel ander verhaal. HTML stelt lagere eisen aan consistentie en is daarom ook moeilijker te intepreteren. Wil je een HTML scrapen dan kun je voor de optie kiezen dit met behulp van regular expressions te doen. Ik heb zelf echter altijd het probleem dat ik vergeet hoe de syntax ook al weer was voor bepaalde zoekcriteria. Enkele jaren geleden heb ik daarom een setje klasses geschreven die HTML naar XML converteren. (Onder dit artikel vind je een link naar de download) Vervolgens kun je de gegevens in de HTML gemakkelijk parsen met behulp van bijvoorbeeld een XmlDocument object. Let op, het is geen rocket science maar het werkt en ik ben nog geen pagina tegengekomen die niet met de klasses kon worden geintepreteerd. Het is geen probleem als tags in de HTML die je om wil zetten niet worden gesloten (zoals bijv <P> of <BR>). De classes zorgen zelf dat dit op de juiste manier in de XML wordt afgehandeld.

Hoe werkt het?

Vervolgens kun je je uitleven op elke willekeurige pagina, van het KNMI tot flitsinformatie.

Download Html2XHtml.zip

Deel dit Verhaal:
  • facebook
  • twitter
  • gplus

Over Ton Snoei

Een enthousiaste ontwikkelaar in de allerbreedste zin van het woord.

Het aansturen maar vooral coachen van mensen geeft me veel plezier en een leuke uitdaging. Ik houdt me graag bezig met het bouwen van software maar ook met alle anderen dingen die komen kijken bij het vak dat IT heet.

Met als achtergrond ontwikkelaar heb ik veel ervaring met C# .NET en alles wat daarbij komt kijken. Deze kennis komt nog regelmatig goed van pas. Mijn liefde voor ontwikkeling van software is nooit verdwenen en heb mij daarom in het afgelopen jaar meer verdiept in Java, Android, iOS/iPhone/iPad (Monotouch/Xamarin), PHP en Unity 3D development. Ik noem dat altijd maar: "Lego-spelen voor grote mensen" ;-)

Kortom van de grote lijnen naar projecten tot hands-on problem solven.

Reacties(2)

  1. Bas van Nuland
    4898 days geleden

    Hoi Ton, het htmltoxhtml bijzonder handig!
    Voor mijn site http://www.roven.nl had ik in het verleden ook een content scraper met uitzendingen over vissen. Maar dan op de string.Substring(string.indexOf(..).length- manier. Drama dus. Na een verandering van hun html ging alles over de pis. Toen niet meer de moeite genomen om de onleesbare code te herschrijven. Maar ik ga het nu weer proberen! Easy op deze manier.
    Thanx!

  2. Kris
    4318 days geleden

    Ich kann nicht Deutsch sprechen. Aber es ist eine sehr nützliche Klasse. Vielen Dank.

Laat een reactie achter

Comment