Crawler4j est bon pour ramper les pages avec des résultats codés. Cependant, Crawler4j ne spécifie pas le codage pour la réponse et l'analyse en code brouillé, ce qui est très ennuyeux. Après avoir trouvé la douleur, j'ai découvert accidentellement qu'un article de blog de longue date peut résoudre le problème et modifier le codage de contenu dans Page.load (). résolu.
La copie de code est la suivante:
Public Void Load (Httpentity Entity) lève une exception {
contentType = null;
En-tête type = entity.getContentType ();
if (type! = null) {
contentType = type.getValue ();
}
ContentEncoding = null;
Enditer Encoding = Entity.GetContenCoDing ();
if (encoding! = null) {
ContentEncoding = Encoding.GetValue ();
}
Charset charset = contentType.getOrdefault (entité) .getCharset ();
if (charset! = null) {
contentCharset = charSet.displayName ();
}autre{
contentCharset = "utf-8";
}
// code source
// contentData = entityUtils.toByteArray (entité);
// code modifié
contentData = entityUtils.toString (entité, charse.Forname ("gbk")). GetBytes ();
}