Heim Web-Frontend HTML-Tutorial Detaillierte Erläuterung der Verwendung von HTMLParser (1)

Detaillierte Erläuterung der Verwendung von HTMLParser (1)

Dec 29, 2016 pm 03:49 PM
html parser

Bei der Erforschung der Entwicklung von Suchmaschinen ist die Verarbeitung von HTML-Webseiten ein zentraler Link. Es gibt viele Open-Source-Codes im Internet. HTMLParser ist ein bekannter und weit verbreiteter Code. Die Homepage von HTMLParser ist http://htmlparser.sourceforge.net/ und das letzte Update war Version 1.6 im September 2006. Aber das macht nichts, der Inhalt von HTML hat sich seit langem nicht wesentlich verändert und HTMLParser hat im Grunde kein Problem damit, ihn zu verarbeiten. HTMLParser hat den Vorteil, kompakt und schnell zu sein. Der Nachteil besteht darin, dass es relativ wenige relevante Dokumente (und nur wenige auf Englisch) gibt und viele Funktionen selbst erkundet werden müssen. Für Anfänger ist es immer noch etwas mühsam, aber wenn Sie einmal angefangen haben, werden Sie feststellen, dass das strukturelle Design von HTMLParser sehr clever und sehr praktisch ist und grundsätzlich Ihre verschiedenen Anforderungen erfüllen kann.
Hier habe ich einige Einführungen geschrieben, die auf meinen Erfahrungen in den letzten Monaten basieren. Ich hoffe, dass sie für Freunde hilfreich sein werden, die neu bei HTMLParser sind. (Mein Chinesisch-Ergebnis bei der College-Aufnahmeprüfung war jedoch nur einen Punkt höher als das Bestehen, daher hoffe ich, dass mir bei den grammatikalischen Fragen jeder folgen wird.)

Das Kernmodul von HTMLParser ist der org.htmlparser.Parser Diese Klasse schließt tatsächlich die Verarbeitung von HTML-Seiten ab. Diese Klasse verfügt über die folgenden Konstruktoren:

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);
Nach dem Login kopieren

Für die meisten Benutzer besteht die am häufigsten verwendete Methode darin, den Parser über eine URLConnection oder eine Zeichenfolge zu initialisieren, die den Webseiteninhalt enthält, oder statische Funktionen zum Generieren zu verwenden ein Parser-Objekt. Der Code von ParserFeedback ist sehr einfach und für das Debuggen und Verfolgen von Analyseprozessen konzipiert und muss im Allgemeinen nicht geändert werden. Die Verwendung von Lexer ist ein relativ fortgeschrittenes Thema und wird später besprochen.
Der interessantere Punkt hier ist, dass, wenn Sie die Kodierungsmethode der Seite festlegen müssen, die einzige Möglichkeit darin besteht, statische Funktionen zu verwenden, ohne Lexer zu verwenden. Für die meisten chinesischen Seiten scheint dies eine Methode zu sein, die häufiger verwendet werden sollte.

Das Folgende ist ein Beispiel für die Initialisierung von 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 ) { 
}
}
}
Nach dem Login kopieren

Der hervorgehobene Teil testet mehrere verschiedene Initialisierungsmethoden. Die Ergebnisse werden unten angezeigt. Solange Sie sehen können, dass Parser Inhalte ausgeben kann, werden wir später besprechen, wie Sie auf Parser-Inhalte zugreifen.

Das Obige ist die detaillierte Erklärung der Verwendung von HTMLParser (1). Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Tabellenrahmen in HTML Tabellenrahmen in HTML Sep 04, 2024 pm 04:49 PM

Anleitung zum Tabellenrahmen in HTML. Hier besprechen wir verschiedene Möglichkeiten zum Definieren von Tabellenrändern anhand von Beispielen für den Tabellenrand in HTML.

HTML-Rand links HTML-Rand links Sep 04, 2024 pm 04:48 PM

Anleitung zum HTML-Rand links. Hier besprechen wir einen kurzen Überblick über HTML margin-left und seine Beispiele sowie seine Code-Implementierung.

Verschachtelte Tabelle in HTML Verschachtelte Tabelle in HTML Sep 04, 2024 pm 04:49 PM

Dies ist eine Anleitung für verschachtelte Tabellen in HTML. Hier diskutieren wir anhand der entsprechenden Beispiele, wie man eine Tabelle innerhalb der Tabelle erstellt.

HTML-Tabellenlayout HTML-Tabellenlayout Sep 04, 2024 pm 04:54 PM

Leitfaden zum HTML-Tabellenlayout. Hier besprechen wir die Werte des HTML-Tabellenlayouts zusammen mit den Beispielen und Ausgaben im Detail.

HTML-Eingabeplatzhalter HTML-Eingabeplatzhalter Sep 04, 2024 pm 04:54 PM

Leitfaden für HTML-Eingabeplatzhalter. Hier besprechen wir die Beispiele für HTML-Eingabeplatzhalter zusammen mit den Codes und Ausgaben.

HTML-geordnete Liste HTML-geordnete Liste Sep 04, 2024 pm 04:43 PM

Leitfaden zur HTML-geordneten Liste. Hier besprechen wir auch die Einführung von HTML-geordneten Listen und Typen sowie deren Beispiele

Text in HTML verschieben Text in HTML verschieben Sep 04, 2024 pm 04:45 PM

Anleitung zum Verschieben von Text in HTML. Hier besprechen wir eine Einführung, wie Marquee-Tags funktionieren, mit Syntax und Beispielen für die Implementierung.

HTML-Onclick-Button HTML-Onclick-Button Sep 04, 2024 pm 04:49 PM

Anleitung zum HTML-OnClick-Button. Hier diskutieren wir deren Einführung, Funktionsweise, Beispiele und Onclick-Events in verschiedenen Veranstaltungen.

See all articles