Страница 1 из 1
Jsoup и кириллица в URL
Добавлено: 08 дек 2014, 15:47
GlueBF
Здравствуйте.
Пытаюсь распарсить html при помощи Jsoup. Если адрес страницы содержит только латинские символы (например
http://cat.jpg.to), то все работает нормально. Но если в адресе встречается кириллица (например
http://кот.jpg.to), то парсинг не работает. Вылетает ошибка UnknownHostException.
Кто-нибудь сталкивался с такой проблемой?
Re: Jsoup и кириллица в URL
Добавлено: 08 дек 2014, 16:15
doter.ua
utf-8
Re: Jsoup и кириллица в URL
Добавлено: 08 дек 2014, 16:23
GlueBF
Спасибо за очень оперативный и содержательный ответ
Но к сожалению конструкция адреса ссылки
Код: Выделить всё
src = "http://"+URLEncoder.encode("кот", "UTF-8")+".jpg.to/";
как и исходная конструкция
не работает.
Re: Jsoup и кириллица в URL
Добавлено: 08 дек 2014, 17:51
doter.ua
Скорее всего кодировка применяется к содержимому ссылки, а не к ее адресу.
Re: Jsoup и кириллица в URL
Добавлено: 09 дек 2014, 08:08
GlueBF
Если я правильно понял комментарий, то нет.
Содержимое страницы
http://кот.jpg.to/
Код: Выделить всё
<html>
<head></head>
<body><img style="margin:0;position:absolute;top:0;left:0;" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/Niobe050905-Siamese_Cat.jpeg/220px-Niobe050905-Siamese_Cat.jpeg">
</body>
</html>
Т.е. адрес самой картинки не содержит кириллицы.
Ну ОК. Пока тупик.
Попробую другой парсер.
Re: Jsoup и кириллица в URL
Добавлено: 09 дек 2014, 16:02
doter.ua
GlueBF писал(а):Если я правильно понял комментарий, то нет.
Ошибка возникает раньше чем ты скачаешь хтмл файл. UnknownHostException - неизвестный хост. При чем здесь адрес твоей картинки? чтобы добраться до адреса пикчи - нужно обработать адрес самой страницы, который и содержит кириллицу.
Re: Jsoup и кириллица в URL
Добавлено: 12 дек 2014, 08:38
GlueBF
Наконец-то разобрался с вопросом.
Резюме: связка Jsoup + URLEncoder отлично работает для URL содержащих кириллицу.
Как получилось.
Пробовал разные html-парсеры, ни один не хотел работать. Напомню - задачей было получить из содержания html-страницы по адресу http://###.jpg.to/ (где ### - любое слово как на латинице, так и на кириллице) ссылку на единственное изображение на этой странице (ну а затем скачать это изображение). При отсутствии кириллицы все и всегда работало, а при ее наличии не работало ничего и никогда.
К счастью у данного сервиса оказалась еще одна реализация:
http://jpg.to/###. Вот тут все заработало сразу. Видимо это какие-то проблемы конкретного сайта, дальше копать не стал.
Т.о. в итоге я использовал конструкцию:
Код: Выделить всё
imgURL = "http://jpg.to/"+URLEncoder.encode(etName.getText().toString(), HTTP.UTF_8);
Document doc = Jsoup.connect(imgURL).get();
Elements metaElement = doc.select("img");
imgSrc = metaElement.attr("src");
где в поле etName вводится слово (### в описании выше), а в imgSrc с помощью Jsoup получается ссылку на изображение.
Бинго.
Re: Jsoup и кириллица в URL
Добавлено: 12 июл 2015, 11:55
AKhorevich
У меня немного другая проблема. Я парсю сайт с картинками и в ссылках на некоторые встречается кириллица <img src="
http://dog.org/sites/default/files/images/ главной!.thumbnail.jpg">
как это решить? Подскажите пожалуйста!!!
Re: Jsoup и кириллица в URL
Добавлено: 12 июл 2015, 14:39
doter.ua
AKhorevich писал(а):У меня немного другая проблема. Я парсю сайт с картинками и в ссылках на некоторые встречается кириллица <img src="
http://dog.org/sites/default/files/images/ главной!.thumbnail.jpg">
как это решить? Подскажите пожалуйста!!!
Быдло сайт значит. Все адекватные разрабы перегоняют в транслит.
Re: Jsoup и кириллица в URL
Добавлено: 08 сен 2015, 14:06
AKhorevich
Разработчик сайта не я, откуда у него растут руки - это чисто его физиологические проблемы, мне просто надо данный сайт запарсить.