#java #url #html-parsing
#java #url #html-синтаксический анализ
Вопрос:
Я анализирую веб-страницу и собираю hrefs. Поскольку веб-страница является ненадежным источником, она может содержать ссылки с недопустимым синтаксисом или символами, отличными от ascii. Итак, как я понимаю, мне нужно
1) преобразование пробелов и символов, отличных от ascii, а также других символов
2) проверьте строку, созданную на шаге 1 (критерии допустимости: этот URL можно ввести в браузере, и он сможет получить страницу, представленную url, такой URL может быть создан конструкторами URL / URI и затем получена соответствующая страница — я могу ввести некоторые URL в Firefox, но не могу создать экземпляры в java)
3) создайте java.net.URL /URI из (1), если он допустим
Я нашел две библиотеки проверки: 1 и 2 (какую из них вы предпочитаете?) но нет адекватной библиотеки для первого предложения (такие инструменты, как java.net .URLDecoder / URLEncoder) не предназначены для этой цели.
Ответ №1:
Разве вы не можете просто попытаться создать URL / URI из него в инструкции try / catch? Я думаю, что конструктор класса обрабатывает проверку автоматически
Комментарии:
1. Что вам нужно преобразовать?!
2. > «преобразовать пробелы и символы, отличные от ascii, а также другие символы». Вы можете ввести URL в адресной панели браузера, и он будет автоматически преобразован в действительный URL, но если вы попытаетесь создать URI / URL с помощью соответствующих конструкторов, вы можете получить исключение IllegalSyntaxException.
3. Конструктор new URL (String) может выдавать только исключение MalformedURLException; это когда не указан http: // или что-либо еще. Он позаботится обо всем остальном!?