Как получить данные по запросу HTTP
От: Аноним  
Дата: 20.02.08 11:44
Оценка:
Посетила меня идея — нарисовать хранилище некоей информации, информация доступна в броузере по определенному адресу, значит насколько я понимаю может быть получена программным путем и затем обработана. Вопрос — скажите в какую сторону смотреть, что поситать — задача получить данные html по адресу и разобрать затем сам HTML для получения информации. Насколько я понимаю так работают поисковые системы — очень хочется узнать технологию работы поисковых систем.
Re: Как получить данные по запросу HTTP
От: Blazkowicz Россия  
Дата: 20.02.08 11:52
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Посетила меня идея — нарисовать хранилище некоей информации, информация доступна в броузере по определенному адресу, значит насколько я понимаю может быть получена программным путем и затем обработана. Вопрос — скажите в какую сторону смотреть, что поситать — задача получить данные html по адресу и разобрать затем сам HTML для получения информации. Насколько я понимаю так работают поисковые системы — очень хочется узнать технологию работы поисковых систем.

Класс URL смотри. Там найдешь методы для получения данных по адресу. Если тебе про работу поисковых систем вообще, то могу перенести пост в более профильный форум.
Re: Как получить данные по запросу HTTP
От: vb-develop  
Дата: 20.02.08 12:56
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Посетила меня идея — нарисовать хранилище некоей информации, информация доступна в броузере по определенному адресу, значит насколько я понимаю может быть получена программным путем и затем обработана. Вопрос — скажите в какую сторону смотреть, что поситать — задача получить данные html по адресу и разобрать затем сам HTML для получения информации. Насколько я понимаю так работают поисковые системы — очень хочется узнать технологию работы поисковых систем.


Посмотри Apache HttpClient. Удобная работа с HTTP запросами.

А задача у тебя на две подзадачи разбивается. Загрузить страницу с HTTP сервера и распарсить информацию из неё. С первой частью поможет HttpClient, а вторая часть не отличается от работы с обычном файлом, из которого нужно вытащить информацию.
Re[2]: Как получить данные по запросу HTTP
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 20.02.08 13:19
Оценка: 1 (1)
А>>Посетила меня идея — нарисовать хранилище некоей информации, информация доступна в броузере по определенному адресу, значит насколько я понимаю может быть получена программным путем и затем обработана.

Делаю программку, которая тоже самое делает. Одну уже сделал, так что некий опыт имеется.
vb-develop все правильно написал, смотреть надо в сторону HTTPClient, но сначала нужно подучить матчасть по HTML/HTTP. Для разбора HTML-файлов можно использовать специальный библиотеки, я использую HTMLParser. Не совсем тривиальная вещь, но очень гибкая. Поиск на форуме можно найти пример работы с ним (я приводил). Или найти альтернативные библиотеки (вроде бы JTidy).

Cоветую сразу поставить HTTP-прохи WebScarab. Он поможет для просмотра, как же на самом деле браузер общается с сервером. А затем, для просмотра как же на самом деле твое приложение общается с сервером. В Firefox можно поставить расширение для настройки быстрого переключения proxy (я поставил Switch Proxy или как-то так).

Некоторые сайты не любят, когда с них информацию собирают — поэтому не помешает помнить о двух вещах:
1. Сделать мимикрию заголовков под какой-нибудь браузер (если код будет нужен, выложу для Fx);
2. Не напрягать сайт непрерывными обращениями — поставить задержку между запросами. Возможно, что следует вообще выходить через Tor, чтобы IP-адрес не забанили.
http://jvmmemory.com — простой способ настройки JVM
Re[3]: Как получить данные по запросу HTTP
От: Аноним  
Дата: 20.02.08 15:16
Оценка:
Здравствуйте, LeonidV, Вы писали:
LV>Некоторые сайты не любят, когда с них информацию собирают — поэтому не помешает помнить о двух вещах:
LV>1. Сделать мимикрию заголовков под какой-нибудь браузер (если код будет нужен, выложу для Fx);

Спасибо огромное за ответ, дальше все просто остается только делать. И если можно выложите заготовку для Fx — это здорово мне поможет.
Re[4]: Как получить данные по запросу HTTP
От: LeonidV Ниоткуда http://vygovskiy.com
Дата: 20.02.08 18:57
Оценка:
А>И если можно выложите заготовку для Fx — это здорово мне поможет.

public class ClientMimicry {

        public void set(HttpMethod method) {
            method.addRequestHeader("User-Agent", FF_USER_AGENT);
            method.addRequestHeader("Accept", FF_ACCEPT);
            method.addRequestHeader("Accept-Language", FF_ACCEPT_LANGUAGE);
            method.addRequestHeader("Accept-Encoding", FF_ACCEPT_ENCODING);
            method.addRequestHeader("Accept-Charset", FF_ACCEPT_CHARSET);
            method.addRequestHeader("Keep-Alive", "300");
        };


    private static final String FF_USER_AGENT = "Mozilla/5.0 (X11; U; " +
            "Linux i686; ru; rv:1.8.1.12) Gecko/20080201 Firefox/2.0.0.12";

    private static final String FF_ACCEPT = "text/xml,application/xml,"
            + "application/xhtml+xml,text/html;q=0.9,text/plain;"
            + "q=0.8,image/png,*/*;q=0.5";

    private static final String FF_ACCEPT_LANGUAGE = "ru-ru,ru;"
            + "q=0.8,en-us;q=0.5,en;q=0.3";

    private static final String FF_ACCEPT_ENCODING = "gzip,deflate";

    private static final String FF_ACCEPT_CHARSET = "windows-1251,"
            + "utf-8;q=0.7,*;q=0.7";

    
}
http://jvmmemory.com — простой способ настройки JVM
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.