alanboy
unread,Sep 9, 2009, 11:29:04 AM9/9/09Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
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 !