Elizabeth Mattijsen Eerste Nederlandse Perl Workshop 5 maart 2004 Parsing XML / HTML.

Slides:



Advertisements
Verwante presentaties
Defining a standard JSON-based exchange format for learning metadata Manon Haartsen.
Advertisements

LCMS 1.3 Kort samenvatting “Wat is het verschil met CEDRIC?”
Les 2 Vandaag •Vragen over voorgaande stof •Plaatjes •Tabellen •Links •Huiswerk.
1.There’s Tim! Look, he's wearing his new jeans. 2.What are you doing? We are doing our homework. Je gebruikt de present continuous voor iets dat nu aan.
Help, ik moet naar Office 2007!?. Wat horen wij bij klanten Training “New UI will cause too big of a loss in productivity” Training “New UI will cause.
Workshop Hoe een website publiceren. Vrije ruimte reserveren •U moet bij uw provider een URL-adres of webadres aanvragen of webruimte of domein (via bepaalde.
Order placed Should be Nederland Netherlands can be removed here, just Scancorner Instead of ‘undefined’ -> ‘geen’ New logo should be displayed here. COUNTS.
Welk effect heeft uw Website? Gerard Duursma Online Marketeer linkedin.com/in/bonopoly.
Social Technographics Hoe ontwikkel je een succesvolle social media strategie? Reineke Reitsma Director, Consumer Technographics Forrester Research 11.
Internet College 2 Architecturen. Architectuur van netwerktoepassingen •Peer to peer –Windows werkgroep •File- en printer sharing •Internet connection.
Presentatie kennisoverleg HTML 5. Waarom HTML 5? • Veel van onze informatie is opgeslagen in HTML… • 95% van de HTML is syntactisch incorrect…
JQuery en ASP.NET Bart De Meyer.
Conditional Clauses If-zinnen.
Martijn Berghs: Vista Gadget Sacha Vandekerckhove: lector programma (VB 2005) Stijn Bienkens en Alessandro Pluchino : webservice (Java) Project voorstelling.
HTMLHTML UITLEG & CURSUS. Inleiding HTML: Hyper Text Mark-up Language.
Practica Computerlinguistiek Tekst en uitleg:
Lucene/SOLR 1: inleiding + indexering
SQL VOOR BIOLOGEN © 2011 M.L. Hekkelman CMBI Radboud UMC.
W ORD P RESS TECHNISCHE ACHTERGROND Kris Cardinaels 26 maart 2013.
HTML Les 1: Introductie HTML
HOMCOM LEDEN VERGADERING 18/05/2009. Nieuws  Google doet het goed en minder goed Er is winst maar minder dan 10 % Er is winst maar minder dan 10 % Omzet.
Speaking OData to SharePoint 2010 in a RESTful manner Michaël Hompus | Principal Developer | Winvision.
Omgevingen zijn dan geïmplementeerd als Symbol Tables. Symbol Table mapt een symbool met een Binding Meerdere noties van binding –Meerdere manieren te.
Server side scripting 1 Webtechnologie Lennart Herlaar.
1/1/ / faculty of Computer Science eindhoven university of technology 5JJ20:Computerarchitectuur 2M200:Inleiding Computersystemen Sessie 7(2): Vertalen.
Programma Open Standaarden en Open Source Software voor de Overheid dinsdag 6 april 2004 Open Source Software en Open Standaarden Standaards in samenwerking,
MLA Using wildcards University Library click = next.
Creatieve workshop Wiki: Scroll naar beneden: docentenpagina: Pia Terstroet.
ICT-voorstelling: geogebra en interactieve webbladen Maandag 9 maart 2009 Vakgroep wiskunde.
Hoorcollege 7 Collections, arrays. Programma ‘Snowflakes’ Sneeuwvlok object.
Maart 2001 De e-reader Blok pl. groep / faculteit UB / Studielandschap Student.
Hibernate Object relational mapping
HOM - COM Ledenvergadering 08 / 10 / Easeus-Partition-Master- Home-Edition Link software: Master-Home-Edition/ _4-
Wolter Kaper - AJAX en Javascript via Rails Deel 1 en 2.
DB&SQL8- 1 VBA Visual Basics for Applications: eigen Office versie vanaf Office2000 gelijk voor alle applicaties Programmeren onder meer nodig voor Het.
Mijn eerste Website bouwen
Nr 1 met foto’s Video over image tags
Vervolg C Hogeschool van Utrecht / Institute for Computer, Communication and Media Technology 1 Onderwerpen voor vandaag GUI  command line redirection.
Hoofdstuk 2 Java. Soorten Java-programma’s nJava Applet programma “leeft” op een WWW-pagina nJava Application programma heeft een eigen window nJavascript.
Deel XXI 1 Internetapplicaties Internetprogrammeren Capita Selecta.
INTERNET het communicatie-instrument voorbij Introductie.
Delft On Stage ® dream it.. do it …. Delft On Stage ® Waarom Delft On Stage?  Beter en breder beroepsbeeld  Voorkomen uitval in het MBO  Verbeteren.
Om willekeurig welke site en welk werk dan ook overzichtelijk te houden, moeten er eerst (sub)directories gemaakt worden: Bijeenkomst 2 online journalistiek.
XForms TU Delft Library Digitale Productontwikkeling Egbert Gramsbergen.
Juriconnect vanuit het perspectief van de kennismanager en eindgebruiker Diederik Benschop 5 april 2017.
MMBase Lucene module Wouter Heijke. Kenmerken Lucene Apache Software License Snel/Efficient Java API Query Language Maatwerk nodig voor MMBase.
Afdrukken met Visual Basic 2008
DARE SUMMER SCHOOL Metadata Peter van Huisstede / Ursula Oberst 28 juni 2005.
Les 3 Vandaag 1.Bekijken thuisopdrachten 2.Vragen over voorgaande stof 3.Links 4.FTP 5.Huiswerk.
DSpace-gebruikersdag 9 maart 2006 WildFire ● WildFire is ontwikkeld door Henk Druiven, Rijksuniversiteit Groningen Met dank aan Johannes Nicolai en al.
R: 176 G: 36 B: 125 R: 0 G: 120 B: 93 R: 127 G: 127 B: 127 R: 226 G: 1 B: 119 R: 82 G: 134 B: 47 FONTS Verdana Voorpagina titel 24 Subtitel 16 FONTS Verdana.
TOPIC O: Pointers | pag. 1 Pointer = adres in het geheugen, is zelf geen geheugen! Expliciet geheugen aanvragen vóór gebruik.
25 feb 2005TestCover/abeltje1 TestCover Introductie in Test::More en Devel::Cover use Workshop::Perl::Dutch 2; date( ‘ ’ ); author( abeltje =>
Aan de directie en medezeggenschapsraad van de school Presentatie loopt vanzelf door.
PHP & MYSQL LES 02 PHP & FORMULIEREN. PHP & MYSQL 01 PHP BASICS 02 PHP & FORMULIEREN 03 PHP & DATABASES 04 CMS: BEST PRACTICE.
1 De ontdekking van Web 2.0 Presentatie Team Ordina type hier de datum 19 april 2007.
We zijn toch allemaal zoekende?
Drupal Omega Theme + LESS Drupal User Group 13/12/2012 Maarten De Block 13/12/2012www.entityone.be1.
Link Popularity Het principe van linkpopulariteit kun je als volgt samenvatten: hoe meer webpagina's er naar een bepaalde webpagina linken, des te belangrijker.
De evolutie van JavaScript
C++ C++ als een verbetering van C Abstracte datatypen met classes Constructoren en destructoren Subklassen binding van functies 1.
Presentatie XML Door Marick Manrho. Presentatie Inhoud Wat is XML? De opbouw van XML Wat is XSL? De opbouw van XSL Toepassing RSS.
Stef van Dijk. Inhoud Introductie Cookies? Waarom localStorage? Gebruik localStorage Demo localStorage Bronnen.
Prospero cursus Just getting started!
HTML. Wat is HTML Je kunt er sites mee bouwen Hypertext Markup Language Afspraken voor opmaak: tags.
Codetuts Academy Les 2 Module 2a Php Fundamentals 1.
HTML Hypertext Markup Language. HTML code Elementen van een webpagina Eigenschappen van elementen Structuur van elementen.
Beating YSlow Roland van Ipenburg
Communicatie en taal Begrippen: Gegevens Informatie
Communicatie en taal Begrippen: Gegevens Informatie
Transcript van de presentatie:

Elizabeth Mattijsen Eerste Nederlandse Perl Workshop 5 maart 2004 Parsing XML / HTML

Wil je gegevens uit HTML halen om er verder iets mee te doen? Wil je de HTML netjes maken? Wil je er XML van maken? Waarschijnlijk nog wel iets anders... ;-) EIMDEMOHTD (TIMTOWTDI) ! Wat wil je bereiken?

Tekst, bijvoorbeeld voor een zoekmachine: Tekst uit HTML halen lynx -dump URL >filename * Quick ‘n’ Dirty oplossing * Niet direct Perl nodig * Eventueel in combinatie met open() open( my $handle,”lynx -dump URL |” ); local $/; # slurp mode my $text = ;

Daar zijn een heleboel modules voor op CPAN! HTML::LinkExtor HTML::SimpleLinkExtor HTML::LinkExtractor en nog veel meer algemene modules die hiervoor gebruikt / misbruikt kunnen worden! Links uit HTML halen

HTML::LinkExtractor use HTML::LinkExtractor; my $LX = HTML::LinkExtractor->new; $LX->parse( 'programma.html' ); = map {$_->{'href'}} grep {$_->{'tag'} eq print " $_\n" __END__ / /aanmelden.html /overnachten.html /contact.html /route.html /logo/

En nu de images! use HTML::LinkExtractor; my $LX = HTML::LinkExtractor->new; $LX->parse( 'programma.html' ); = map {$_->{'src'}} grep {$_->{'tag'} eq print " $_\n" __END__ /perl.jpg /logo.png

EIMDEMOHTD! use HTML::TokeParser; my $p = HTML::TokeParser->new( 'programma.html' ); while (my $token = $p->get_tag( 'a' )){ next unless my $url = $token->[1]->{ 'href' }; print " $url\n"; } __END__ / /aanmelden.html /overnachten.html /contact.html /route.html /logo/

HTML::TokeParser is ook algemener te gebruiken: Teksten met Perl modules use HTML::TokeParser; my $p = HTML::TokeParser->new( 'programma.html' ); while (my $token = $p->get_tag) { next unless my $text = $p->get_text; next unless $text =~ m#\w#; print " $text"; } __END__ Perl Workshop 2004

XML::LibXML is een snelle XML parser die gebaseerd is op de GNOME “libxml” library. de XML aanpak! use XML::LibXML; my $libxml = XML::LibXML->new; $libxml->recover( 1 ); my $dom = $libxml->parse_html_file( 'programma.html' ); foreach ($dom->findnodes( '//a' )) { print " ",$_->getAttribute( 'href' ),"\n"; } __END__ / /aanmelden.html /overnachten.html /contact.html /route.html /logo/

Alle tekst met XML use XML::LibXML; my $libxml = XML::LibXML->new; $libxml->recover( 1 ); my $dom = $libxml->parse_html_file('programma.html'); print $dom->textContent; __END__ Perl Workshop 2004; Programma

XML van HTML maken use XML::LibXML; my $libxml = XML::LibXML->new; $libxml->recover( 1 ); my $dom = $libxml->parse_html_file('programma.html'); print $dom->toString; __END__ Perl Workshop 2004; Programma

Een kleine Benchmark use Benchmark qw(:all); use HTML::LinkExtractor; use HTML::TokeParser; use XML::LibXML; my $libxml = XML::LibXML->new; $libxml->recover( 1 ); cmpthese( -2,{ tokeparser => sub { my $p = HTML::TokeParser->new( 'programma.html' ); while (my $token = $p->get_tag( 'a' )) { $token->[1]->{ 'href' }; } }, libxml => sub { my $dom = $libxml->parse_html_file( 'programma.html' ); = map {$_->getAttribute( 'href' )} $dom->findnodes('//a'); }, linkextractor => sub { $LX->parse( 'programma.html' ); = map {$_->{'src'}} grep {$_->{'tag'} eq }, } ); __END__ Rate linkextractor tokeparser libxml linkextractor 5.85/s % -95% tokeparser 49.5/s 746% % libxml 116/s 1878% 134% --

Vragen? Elizabeth Mattijsen Eerste Nederlandse Perl Workshop 5 maart 2004 (C) Elizabeth Mattijsen All rights Reserved Dank voor uw aandacht en medewerking!