Страница 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/";
как и исходная конструкция

Код: Выделить всё

src = "http://"+"кот"+".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
Разработчик сайта не я, откуда у него растут руки - это чисто его физиологические проблемы, мне просто надо данный сайт запарсить.