Crawler4j хорош в страницах ползания с кодированными результатами. Тем не менее, Crawler4j не указывает кодирование для ответа и анализирует его в искаженном коде, что очень раздражает. Найдя боль, я случайно обнаружил, что давняя запись в блоге может решить проблему и изменить кодирование ContentData в Page.load (). Решен.
Кода -копия выглядит следующим образом:
Public void Load (Httpentity Entity) бросает исключение {
ContentType = null;
Заголовок тип = entity.getContentType ();
if (type! = null) {
ContentType = type.getValue ();
}
ContentEcoding = null;
Кодирование заголовка = entity.getContentEncoding ();
if (кодирование! = null) {
ContentEncoding = encoding.getValue ();
}
Charset charset = contentype.getordefault (entity) .getCharset ();
if (charset! = null) {
ContentCharset = charset.displayName ();
}еще{
ContentHarset = "UTF-8";
}
// исходный код
// contentData = entityutils.tobytearray (entity);
// Измененный код
contentData = entityutils.tostring (entity, charset.forname ("gbk")). getbytes ();
}