studio - jsoup java netbeans
Sitio web de Parse HTML con JAVA (3)
Esta pregunta ya tiene una respuesta aquí:
- ¿Qué HTML Parser es el mejor? [cerrado] 3 respuestas
Quiero analizar un sitio web simple y eliminar información de ese sitio web.
Solía analizar archivos XML con DocumentBuilderFactory, intenté hacer lo mismo con el archivo html pero siempre entra en un ciclo infinito.
URL url = new URL("http://www.deneme.com");
URLConnection uc = url.openConnection();
InputStreamReader input = new InputStreamReader(uc.getInputStream());
BufferedReader in = new BufferedReader(input);
String inputLine;
FileWriter outFile = new FileWriter("orhancan");
PrintWriter out = new PrintWriter(outFile);
while ((inputLine = in.readLine()) != null) {
out.println(inputLine);
}
in.close();
out.close();
File fXmlFile = new File("orhancan");
DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder dBuilder = dbFactory.newDocumentBuilder();
Document doc = dBuilder.parse(fXmlFile);
NodeList prelist = doc.getElementsByTagName("body");
System.out.println(prelist.getLength());
¿Cuál es el problema? ¿O hay alguna forma más fácil de eliminar datos de un sitio web para una etiqueta html determinada?
Definitivamente JSoup es la respuesta. ;-)
HTML no siempre es válido, XML bien formateado. Pruebe un analizador HTML especial en lugar de un analizador XML. Hay un par de diferentes disponibles:
Hay una manera mucho más fácil de hacer esto. Sugiero usar JSoup . Con JSoup puedes hacer cosas como
Document doc = Jsoup.connect("http://en.wikipedia.org/").get();
Elements newsHeadlines = doc.select("#mp-itn b a");
O si quieres el cuerpo:
Elements body = doc.select("body");
O si quieres todos los enlaces:
Elements links = doc.select("body a");
Ya no es necesario obtener conexiones o manejar transmisiones. Sencillo. Si alguna vez usaste jQuery, es muy similar a eso.