Estoy usando el analizador HTML para desarrollar una aplicación. El siguiente código no puede obtener el conjunto completo de etiquetas en la página. Hay algunas etiquetas que se pierden y los atributos y el cuerpo del texto también se pierden. me puede ayudar a explicar por qué sucede esto ..... o me sugieren otra manera ....Cómo usar el analizador HTML para obtener información completa sobre todas las etiquetas en la página HTML
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");
}
}
}
El problema es demasiado vago. Tome un sitio de ejemplo ('http: // google.com' tal vez?) Y por favor diga en detalle qué es exactamente lo que falta. – BalusC
en realidad quiero extraer información como el nombre del producto, el precio, etc. de todos los productos enumerados en un sitio de compras en línea como amazon.com ¿Cómo debo hacerlo? –