Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Работа с сетью > java и работа с web-страницами.


Автор: underW 23.1.2010, 15:33
стоит задача с помощью java реализовать открытие интернет страницы, парсинг отдельных ее елементов, в зависимости от результатов парсинга составлять и выполнять POST GET запросы, проще говоря, необходимо реализовать механизм, как будто это пользователь через браузер лазит по страничке. так как на url требуется еще и авторизация пользователя, то еще необходимо обеспечить работу с "печенюшками".

Перед тем, как начинать со всем этим модохаться, решил уточнить, возможно существуют какие то дополнительные инструменты, пакеты, которые могут в значительной мере облегчить реализацию поставленой задачи?

Спасибо.

Автор: powerOn 23.1.2010, 16:01
http://hc.apache.org/httpclient-3.x/.

Автор: afon 23.1.2010, 19:16
Если это какие-нибудь скрипты, а не часть программы, то можно попробовать JMeter подключить.

Автор: Kangaroo 23.1.2010, 23:21
powerOn, только это уже старая версия, новая реализация http://hc.apache.org/httpcomponents-client/index.html

Автор: powerOn 24.1.2010, 01:05
Цитата(Kangaroo @  23.1.2010,  23:21 Найти цитируемый пост)
powerOn, только это уже старая версия, новая реализация тут 

ок, спасибо.

Автор: underW 25.1.2010, 13:10
ага, спасибо за наводку. пока все делаю, на чистом API. 

и вот к чему я сейчас пришел:

Допустим, открываем через браузер страничку http://www.google.com.ua. С помощью дополнения HttpFox для Firefox, которое отслеживает все запросы браузера, видим, что "ушло" на сервер 4 разных get-запроса, первый из которых, имеет примерно следующее содержание: 
Код

(Request-Line)  GET / HTTP/1.1
    Host    www.google.com.ua
    User-Agent  Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6
    Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
    Accept-Language ru,en-us;q=0.7,en;q=0.3
    Accept-Encoding gzip,deflate
    Accept-Charset  windows-1251,utf-8;q=0.7,*;q=0.7
    Keep-Alive  115
    Proxy-Connection    keep-alive
    Cookie  PREF=ID=5b4бла-бла-бла
    Proxy-Authorization Basic бла-бла-бла=
    Cache-Control   max-age=0



Теперь собственно вопрос - можем ли мы утверждать, что следующий код: 

Код

    URL test=new URL("http://www.google.com.ua");
         HttpURLConnection con=(HttpURLConnection)test.openConnection();
                            con.setRequestProperty("Host","www.google.com.ua");
con.setRequestProperty("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6");
    con.setRequestProperty("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
    con.setRequestProperty("Accept-Language","ru,en-us;q=0.7,en;q=0.3");
    //con.setRequestProperty("Accept-Encoding","");
    con.setRequestProperty("Accept-Charset","windows-1251,utf-8;q=0.7,*;q=0.7");
    con.setRequestProperty("Keep-Alive","115");
    con.setRequestProperty("Proxy-Connection","keep-alive");
    con.setRequestProperty("Cookie","PREF=ID=5бла-бла-бла");
                con.setRequestProperty("Proxy-Authorization","бла-бла-блаA=");
            con.setRequestProperty("Cache-Control","max-age=0");


создаст точно же такой запрос к серверу, как такой, что ушел к серверу с браузера?

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

Автор: LSD 25.1.2010, 15:43
Цитата(underW @  25.1.2010,  13:10 Найти цитируемый пост)
Теперь собственно вопрос - можем ли мы утверждать, что следующий код: 
...
создаст точно же такой запрос к серверу, как такой, что ушел к серверу с браузера?

В общем - да. Для полной уверенности я бы еще снифером проверил бы что отсылает браузер, а что твое приложение.

Автор: underW 25.1.2010, 16:35
LSD,спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)