Ich verwende den HTML-Parser, um eine Anwendung zu entwickeln. Der folgende Code ist nicht in der Lage, den gesamten Satz von Tags auf der Seite zu erhalten. Es gibt einige Tags, die verpasst wurden, und die Attribute und Textkörper von ihnen sind ebenfalls verpasst. Bitte helfen Sie mir zu erklären, warum ist das passiert ..... oder mir andere Art und Weise vorschlagen ....So verwenden Sie den HTML-Parser, um vollständige Informationen zu allen Tags auf der HTML-Seite zu erhalten
URL url = new URL("...");
PrintWriter pw=new PrintWriter(new FileWriter("HTMLElements.txt"));
URLConnection connection = url.openConnection();
InputStream is = connection.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
HTMLEditorKit htmlKit = new HTMLEditorKit();
HTMLDocument htmlDoc = (HTMLDocument)htmlKit.createDefaultDocument();
HTMLEditorKit.Parser parser = new ParserDelegator();
HTMLEditorKit.ParserCallback callback = htmlDoc.getReader(0);
parser.parse(br, callback, true);
ElementIterator iterator = new ElementIterator(htmlDoc);
Element element;
while ((element = iterator.next()) != null)
{
AttributeSet attributes = element.getAttributes();
Enumeration e=attributes.getAttributeNames();
pw.println("Element Name :"+element.getName());
while(e.hasMoreElements())
{
Object key=e.nextElement();
Object val=attributes.getAttribute(key);
int startOffset = element.getStartOffset();
int endOffset = element.getEndOffset();
int length = endOffset - startOffset;
String text=htmlDoc.getText(startOffset, length);
pw.println("Key :"+key.toString()+" Value :"+val.toString()+"\r\n"+"Text :"+text+"\r\n");
}
}
}
Das Problem ist zu vage. Nehmen Sie eine Beispielwebsite ("http: // google.com" vielleicht?) Und sagen Sie im Detail, was genau fehlt. – BalusC
eigentlich möchte ich Informationen wie Produktname, Preis etc aller Produkte in einer Online-Shopping-Site wie amazon.com extrahiert Wie soll ich darüber gehen ??? –