Комментарии 23
НЛО прилетело и опубликовало эту надпись здесь
НЛО прилетело и опубликовало эту надпись здесь
Написал ниже.
0
Спасибо за иконку! Заинтересовался, что за она, посмотрел адрес — и открыл для себя новый сервис гугла :)
(А на хабре о нём рассказывали ровно год назад.)
(А на хабре о нём рассказывали ровно год назад.)
0
Спасибо за иконку! Заинтересовался, что за она, посмотрел адрес — и открыл для себя новый сервис гугла :)
(А на хабре о нём рассказывали ровно год назад.)
P.S. Похоже, комментарии добавляются куда попало.
(А на хабре о нём рассказывали ровно год назад.)
P.S. Похоже, комментарии добавляются куда попало.
0
Лолшто?
Драйвер там подгружается.
Драйвер там подгружается.
0
OMG! text.indexOf()? Почему не регекспы? Или почему не DOM?
Мне приходилось решать такую задачу (и прокси парсил, и сайты) — очень помог jTity, код получается проще и понятнее чем на регэкспах. И уж точно проще и понятнее, чем такой вот странный разбор строк.
Мне приходилось решать такую задачу (и прокси парсил, и сайты) — очень помог jTity, код получается проще и понятнее чем на регэкспах. И уж точно проще и понятнее, чем такой вот странный разбор строк.
+1
Ну я был еще маленький и неопытный неделю назад. Та часть, что лезет на nic.ru уже через регэкспы сделана.
-1
Вообще говоря код даже получился очень даже не очень… st.close(); и conn.close(); принято делать в finally, и это неспроста так принято ;). Присвоения в условиях типа while ((line = reader.readLine()) != null) тоже обычно не приветствуются. Функция removeChar() написана крайне странно. Почему не foreach? И почему е используется StringBuilder/StringBuffer, ведь насколько я понимаю в данном случае ничего компилятором оптимизировано не будет, и на каждую итерацию будет создаваться новый объект String! Это я уже молчу про то, что можно просто .replace() сделать. PreparedStatement'ы где? Ну я понимаю что код «для себя», но все равно, какой смысл приучаться делать неправильно?!
0
>>Присвоения в условиях типа while ((line = reader.readLine()) != null) тоже обычно не приветствуются
Это почему же?
Это почему же?
0
В основном потому, что если условие будет немного сложнее != null, то момент присвоения может зрительно потеряться. Или еще хуже — если глядя на чужой код будет неясно, опечатка это (должно быть сравнение) или так и задумано? В данном случае — да, сэкономили строчку (надо было бы делать присвоение и до цикла, и внутри него), но я стараюсь так не писать.
0
Спасибо за тему. Как раз изучаю Java.
0
Месяц назад тут обсуждали граббинг Google Maps с обходом подобной защиты через TOR.
Сам писал несколько раз прокси краулеры – потому и запомнил. По мне так TOR куда более технологичное и надёжное решение.
Сам писал несколько раз прокси краулеры – потому и запомнил. По мне так TOR куда более технологичное и надёжное решение.
+1
TOR
и никаких велосипедов с парсингом
и никаких велосипедов с парсингом
0
А зачем ты всегда загоняешь null в переменную, которая и так null? =)
// String host = null;
// String port = null;
Не критично конечно, просто сразу в глаза бросилось, потеря времени только имхо.
Ну и всегда приятней работать с нормальными объектами, вместо того чтобы обрабатывать поток символов.
В частности, выгрузить табличку и ходить по её полям.
simple.sourceforge.net/
xstream.codehaus.org/
// String host = null;
// String port = null;
Не критично конечно, просто сразу в глаза бросилось, потеря времени только имхо.
Ну и всегда приятней работать с нормальными объектами, вместо того чтобы обрабатывать поток символов.
В частности, выгрузить табличку и ходить по её полям.
simple.sourceforge.net/
xstream.codehaus.org/
0
«А зачем ты всегда загоняешь null в переменную, которая и так null? =)
// String host = null;
// String port = null;»
Тут вы ошибаетесь. Конструкция String host; внутри метода (не как параметр класса) даст ошибку при обращении к ней — 'переменная 'host' не инициализирована'
// String host = null;
// String port = null;»
Тут вы ошибаетесь. Конструкция String host; внутри метода (не как параметр класса) даст ошибку при обращении к ней — 'переменная 'host' не инициализирована'
0
Ок, поспешил с утра, но он всё равно загоняет в неё содержимое позже, дк зачем её нулём инициализировать в начале?
Естественно, что он её инициализирует чемнить перед тем, как в метод загонять.
// 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
Естественно, что он её инициализирует чемнить перед тем, как в метод загонять.
// 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
0
Ничего себе… какой у вас велосипед. Таким не стоит хвастаться. Модели нет, парсинг просто ужас. Представьте на секунду, что структура HTML изменится, придется все переделывать.
HTML это производная XML, а это значит что его можно разпарсить инструментами разработанными для этого. К примеру JDOM.
HTML это производная XML, а это значит что его можно разпарсить инструментами разработанными для этого. К примеру JDOM.
0
Писать скрипты на java — не самая умная затея. Рекомендую груви, где ровно для тех же задач можно написать в 4 раза меньше кода.
0
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Пишем парсер на Java + MySQL