Maison interface Web tutoriel HTML Explication détaillée de l'utilisation de HTMLParser (1)

Explication détaillée de l'utilisation de HTMLParser (1)

Dec 29, 2016 pm 03:49 PM
html parser

Dans la recherche sur le développement des moteurs de recherche, le traitement des pages Web HTML est un maillon central. Il existe de nombreux codes open source sur Internet. Pour Java, HTMLParser est un code bien connu et largement utilisé. La page d'accueil de HTMLParser est http://htmlparser.sourceforge.net/, et la dernière mise à jour était la version 1.6 en septembre 2006. Mais cela n'a pas d'importance, le contenu du HTML n'a pas changé de manière significative depuis longtemps et HTMLParser n'a fondamentalement aucun problème à le traiter. HTMLParser présente l'avantage d'être compact et rapide. L'inconvénient est qu'il existe relativement peu de documents pertinents (et peu en anglais) et que de nombreuses fonctions doivent être explorées par vous-même. Pour les débutants, cela demande encore un certain effort, mais une fois que vous aurez commencé, vous constaterez que la conception structurelle de HTMLParser est très intelligente et très pratique, et qu'elle peut essentiellement répondre à vos différents besoins.
Ici, j'ai écrit quelques éléments d'introduction basés sur mon expérience des derniers mois. J'espère que cela sera utile aux amis qui découvrent HTMLParser. (Cependant, mon score en chinois à l'examen d'entrée à l'université n'était qu'un point supérieur à la réussite, j'espère donc que tout le monde me supportera sur les questions grammaticales)

Le module de base de HTMLParser est le org.htmlparser.Parser classe Cette classe termine en fait le traitement des pages HTML. Cette classe a les constructeurs suivants :

public Parser ();
public Parser (Lexer lexer, ParserFeedback fb);
public Parser (URLConnection connection, ParserFeedback fb) throws ParserException;
public Parser (String resource, ParserFeedback feedback) throws ParserException;
public Parser (String resource) throws ParserException;
public Parser (Lexer lexer);
public Parser (URLConnection connection) throws ParserException;
和一个静态类 public static Parser createParser (String html, String charset);
Copier après la connexion

Pour la plupart des utilisateurs, la méthode la plus couramment utilisée consiste à initialiser Parser via une URLConnection ou une chaîne contenant le contenu d'une page Web, ou à utiliser des fonctions statiques pour générer un objet Analyseur. Le code de ParserFeedback est très simple et est conçu pour le débogage et le suivi des processus d'analyse, et n'a généralement pas besoin d'être modifié. L'utilisation de Lexer est un sujet relativement avancé et sera abordé plus tard.
Le point le plus intéressant ici est que si vous devez définir la méthode d'encodage de la page, le seul moyen est d'utiliser des fonctions statiques sans utiliser Lexer. Pour la plupart des pages chinoises, il semble que ce soit une méthode qui devrait être utilisée plus souvent.

Ce qui suit est un exemple d'initialisation de Parser.

/**
* @author www.baizeju.com
*/
package com.baizeju.htmlparsertester;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.FileInputStream;
import java.io.File;
import java.net.HttpURLConnection;
import java.net.URL;
import org.htmlparser.visitors.TextExtractingVisitor;
import org.htmlparser.Parser;
/**
* @author www.baizeju.com
*/
public class Main {
private static String ENCODE = "GBK";
private static void message( String szMsg ) {
try{ System.out.println(new String(szMsg.getBytes(ENCODE), System.getProperty("file.encoding"))); } catch(Exception e ){}
}
public static String openFile( String szFileName ) {
try {
BufferedReader bis = new BufferedReader(new InputStreamReader(new FileInputStream( new File(szFileName)), ENCODE) );
String szContent="";
String szTemp;
while ( (szTemp = bis.readLine()) != null) {
szContent+=szTemp+"/n";
}
bis.close();
return szContent;
}
catch( Exception e ) {
return "";
}
}
public static void main(String[] args) {
String szContent = openFile( "E:/My Sites/HTMLParserTester.html");
try{
//Parser parser = Parser.createParser(szContent, ENCODE);
//Parser parser = new Parser( szContent );
Parser parser = new Parser( (HttpURLConnection) (new URL("http://127.0.0.1:8080/HTMLParserTester.html")).openConnection() );
TextExtractingVisitor visitor = new TextExtractingVisitor();
parser.visitAllNodesWith(visitor);
String textInPage = visitor.getExtractedText();
message(textInPage);
}
catch( Exception e ) { 
}
}
}
Copier après la connexion

La partie soulignée teste plusieurs méthodes d'initialisation différentes, et les résultats sont présentés ci-dessous. Tant que vous pouvez voir que Parser peut générer du contenu, nous discuterons plus tard de la manière d'accéder au contenu de Parser.

Ce qui précède est l'explication détaillée de l'utilisation de HTMLParser (1). Pour plus de contenu connexe, veuillez faire attention au site Web PHP chinois (www.php.cn) !


Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Article chaud

Repo: Comment relancer ses coéquipiers
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
1 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Tags d'article chaud

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Tableau imbriqué en HTML Tableau imbriqué en HTML Sep 04, 2024 pm 04:49 PM

Tableau imbriqué en HTML

Bordure de tableau en HTML Bordure de tableau en HTML Sep 04, 2024 pm 04:49 PM

Bordure de tableau en HTML

Marge gauche HTML Marge gauche HTML Sep 04, 2024 pm 04:48 PM

Marge gauche HTML

Disposition du tableau HTML Disposition du tableau HTML Sep 04, 2024 pm 04:54 PM

Disposition du tableau HTML

Déplacer du texte en HTML Déplacer du texte en HTML Sep 04, 2024 pm 04:45 PM

Déplacer du texte en HTML

Liste ordonnée HTML Liste ordonnée HTML Sep 04, 2024 pm 04:43 PM

Liste ordonnée HTML

Comment analysez-vous et traitez-vous HTML / XML dans PHP? Comment analysez-vous et traitez-vous HTML / XML dans PHP? Feb 07, 2025 am 11:57 AM

Comment analysez-vous et traitez-vous HTML / XML dans PHP?

Bouton HTML onclick Bouton HTML onclick Sep 04, 2024 pm 04:49 PM

Bouton HTML onclick

See all articles