Parsare HTML in Java
In acest post voi prezenta o metoda de parsare a documentelor HTML prost formate (taguri neinchise sau incrucisate si alte moduri de nerespectare ale cerintelor XHTML).
Totul a pornit de la o tema la materia Interfete Evoluate, care cerea extragerea dintr-o retea sociala a tuturor prietenilor unui user, pornind de la id-ul acestuia. A parut simplu la inceput. nu aveam decat sa parsez pagina de profil si sa sar din link in link pana as fi epuizat reteaua de prieteni pana la o anumita adancime. Dificultatea temei a fost insa parsarea paginilordin interiorul retelei sociale. Parserul SAX din Java crapa din cauza erorilor din documentul XML...pentru ca ...o pagina HTML e foarte rar valida din punct de vedere al formatului XML.
Ceea ce am folosit pentru a parsa in Java paginile HTML a fost un parser gratuit, Jericho, care se poate downloada la adresa :
http://jerichohtml.sourceforge.net/.
Motivele pentru care recomand parserul HTML Jericho sunt :
- e open source si gratuit
- e simplu de inteles, fiind scris intr-un stil explicit si bine documentat
- e simplu de folosit pentru ca vine cu o suita de exemple accesibile pentru diverse modele de utilizare
- nu e nevoie sa cauti pe net exemple de cod pentru a folosi biblioteca, sunt suficiente sursele puse la dispozitie in pachet
- gaseste erorile datorate proastei formatari a textului dar trece peste si incearca o parsare cat mai completa pentru restul documentului
- intreaga arhiva jar are in jur de 300k, ceea ce e din punctul meu de vedere o dimensiune acceptabila
Pentru a face arhiva jar (libraria externa) disponibila unui proiect in Eclipse:
- Project -> Properties -> Java Build Path -> Libraries -> Add External Jars -> Jericho.jar
0 comentarii:
Trimiteți un comentariu