Crawler4J es bueno para rastrear páginas con resultados codificados. Sin embargo, Crawler4J no especifica la codificación para la respuesta y la analiza en código confuso, lo cual es muy molesto. Después de encontrar el dolor, accidentalmente descubrí que una publicación de blog de larga data puede resolver el problema y modificar la codificación de datos de contenido en Page.Load (). resuelto.
La copia del código es la siguiente:
Public void Load (entidad httpentity) lanza la excepción {
contentType = null;
Encabezado type = entity.getContentType ();
if (type! = null) {
contentType = type.getValue ();
}
contentEncoding = null;
Encabezado codificación = entity.getContentEncoding ();
if (coding! = null) {
contentEncoding = encoding.getValue ();
}
Charset charset = contentType.getorDefault (entidad) .getCharset ();
if (charset! = null) {
contentcharset = charset.displayname ();
}demás{
contentcharset = "utf-8";
}
// código fuente
// contentData = entityUtils.tobytearray (entidad);
// código modificado
contentData = entityUtils.ToString (entidad, charset.forname ("gbk")). getBytes ();
}