Guardar codigo HTML y/o Binarios en MySQL desde Java

191 views
Skip to first unread message

alanboy

unread,
Sep 9, 2009, 11:29:04 AM9/9/09
to SQL México
Hola !

Estoy haciendo un web crawler en java. Dada una url, parseo su codigo
html, y encuentro los links que tiene esa pagina, esos links los pongo
en espera para ser "crawleados" y asi sucesivamente hasta el fin de
los tiempos. Hasta ahi todo funciona bien. El problema es que quiero
guardar todo el codigo html de esa pagina en la base de datos, y dado
que el codigo html tiene cientos de comillas y diagonales y demas, el
query que utilizo para guardar el html siempre me marca error.

¿ Conocen algun metodo o tiene por ahi algun codigo que escape todos
los caracteres raros para poder guardarlos en la base de datos ?

U otra forma que he pensado es comprimir ese archivo de texto (el
html) y guardarlo como binario en la base de datos. Eso tambien ya
esta funcional, pero sigo sin poder recuperar el binario de la base de
datos, he aqui el codigo de prueba para descargar el binario (BLOB) de
la base de datos:

--
//conexion
Class.forName("org.gjt.mm.mysql.Driver").newInstance();
Connection con = DriverManager.getConnection
(url,login,password);
PreparedStatement stmt;

// retrieve it from the database and write it to the named
file
ResultSet rs;
stmt = con.prepareStatement("SELECT html FROM Spider WHERE
docId = ?");
stmt.setString(1, docId);
rs = stmt.executeQuery();
if (!rs.next()) {
System.out.println("No such file stored.");
} else {
Blob b = rs.getBlob(1);
BufferedOutputStream os;
os = new BufferedOutputStream(new FileOutputStream(new
File("salida.txt")));
os.write(b.getBytes(0, (int) b.length()), 0, (int)
b.length());
os.flush();
os.close();
}
--
Si me crea el archivo, pero este esta vacio. ¿Que estoy haciendo
mal ?

Saludos !
Reply all
Reply to author
Forward
0 new messages