SKART1 / GEOTRACERT

Server and client (web front) for geotracert service
Other
6 stars 0 forks source link

Парсинг страницы #58

Closed SKART1 closed 10 years ago

SKART1 commented 10 years ago

Напиши пожалуйста парсер (на джаве - пусть у тебя ответ - гигантская строка) вот такой страницы: http://geoiptool.com/ru/?IP=80.91.245.98

Выдернуть надо строчки Долгота: 8 Широта: 47

Сроки очень сжатые, задание очень важное Желательно выполнить к 23.12.2013 к 18:00

mendrew commented 10 years ago

@dm-kiselev, обрати внимание сюда

dm-kiselev commented 10 years ago

Посмотрю сегодня ближе к ночи или завтра.

mendrew commented 10 years ago

Парсинг html страницы удался. Скоро пример залью и попробую в наш проект вставить

dm-kiselev commented 10 years ago

Это не может не радовать :)

mendrew commented 10 years ago

Сделано. https://github.com/321SKART123/GEOTRACERT/commit/23b166727c4c84ba34a587cb4caa29e51492a1ca

Реализовал всё в классе Location. Работает так, что сначала вызывается метод, работающий с FreeGeoIp, от которого получаем xml и парсим его. Ели координаты неудачные (нулевые), обращаемся к GeoIpTool, от которого получаем html-страницу. Её преобразуем в xml и находим по тэгам широту и долготу.

Для каждого сервиса свой метод, поэтому можно легко поменять очередность, а можно и вообще один сервис оставить.

Ещё стоит подумать над обработкой неудачных координат. У GeoIpTool в html странице вообще пустые поля. Тогда при вызове метода Double.parseDouble() сработает исключение NullPointerException

Я это не смотрел и не проверял. Но, думаю, можно понадеяться на Клиент, который не даст нам неправильных Ip, и обработчики Tracert , что они нам дадут существующие в базе IP.

Вот теперь я думаю, что надо будет это обработать)