Как стать автором
Обновить

Комментарии 23

НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Написал ниже.
Да елки палки)
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за иконку! Заинтересовался, что за она, посмотрел адрес — и открыл для себя новый сервис гугла :)
(А на хабре о нём рассказывали ровно год назад.)
НЛО прилетело и опубликовало эту надпись здесь
Спасибо за иконку! Заинтересовался, что за она, посмотрел адрес — и открыл для себя новый сервис гугла :)
(А на хабре о нём рассказывали ровно год назад.)

P.S. Похоже, комментарии добавляются куда попало.
Лолшто?
Драйвер там подгружается.
OMG! text.indexOf()? Почему не регекспы? Или почему не DOM?
Мне приходилось решать такую задачу (и прокси парсил, и сайты) — очень помог jTity, код получается проще и понятнее чем на регэкспах. И уж точно проще и понятнее, чем такой вот странный разбор строк.
Ну я был еще маленький и неопытный неделю назад. Та часть, что лезет на nic.ru уже через регэкспы сделана.
Вообще говоря код даже получился очень даже не очень… st.close(); и conn.close(); принято делать в finally, и это неспроста так принято ;). Присвоения в условиях типа while ((line = reader.readLine()) != null) тоже обычно не приветствуются. Функция removeChar() написана крайне странно. Почему не foreach? И почему е используется StringBuilder/StringBuffer, ведь насколько я понимаю в данном случае ничего компилятором оптимизировано не будет, и на каждую итерацию будет создаваться новый объект String! Это я уже молчу про то, что можно просто .replace() сделать. PreparedStatement'ы где? Ну я понимаю что код «для себя», но все равно, какой смысл приучаться делать неправильно?!
>>Присвоения в условиях типа while ((line = reader.readLine()) != null) тоже обычно не приветствуются

Это почему же?
В основном потому, что если условие будет немного сложнее != null, то момент присвоения может зрительно потеряться. Или еще хуже — если глядя на чужой код будет неясно, опечатка это (должно быть сравнение) или так и задумано? В данном случае — да, сэкономили строчку (надо было бы делать присвоение и до цикла, и внутри него), но я стараюсь так не писать.
Ясно, вашу точку зрения понял и с ней согласен. Но сам иногда использую такой подход, разумеется когда условие простое, например != -1 (для чтения из потоков в основном) ну или же как в этом примере.
Спасибо за тему. Как раз изучаю Java.
Месяц назад тут обсуждали граббинг Google Maps с обходом подобной защиты через TOR.

Сам писал несколько раз прокси краулеры – потому и запомнил. По мне так TOR куда более технологичное и надёжное решение.
TOR
и никаких велосипедов с парсингом
А зачем ты всегда загоняешь null в переменную, которая и так null? =)
// String host = null;
// String port = null;
Не критично конечно, просто сразу в глаза бросилось, потеря времени только имхо.

Ну и всегда приятней работать с нормальными объектами, вместо того чтобы обрабатывать поток символов.
В частности, выгрузить табличку и ходить по её полям.
simple.sourceforge.net/
xstream.codehaus.org/
«А зачем ты всегда загоняешь null в переменную, которая и так null? =)
// String host = null;
// String port = null;»
Тут вы ошибаетесь. Конструкция String host; внутри метода (не как параметр класса) даст ошибку при обращении к ней — 'переменная 'host' не инициализирована'
Ок, поспешил с утра, но он всё равно загоняет в неё содержимое позже, дк зачем её нулём инициализировать в начале?
Естественно, что он её инициализирует чемнить перед тем, как в метод загонять.
// String host = null;
// host = text.substring(cursor, text.indexOf("<script type=\«text/javascript\»>", cursor));
// System.out.println(«Added: „+host+“:»+port);

// HTML это производная XML
XHTML — www.w3schools.com/xhtml/xhtml_intro.asp
Ничего себе… какой у вас велосипед. Таким не стоит хвастаться. Модели нет, парсинг просто ужас. Представьте на секунду, что структура HTML изменится, придется все переделывать.

HTML это производная XML, а это значит что его можно разпарсить инструментами разработанными для этого. К примеру JDOM.
Писать скрипты на java — не самая умная затея. Рекомендую груви, где ровно для тех же задач можно написать в 4 раза меньше кода.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории