Модераторы: LSD, AntonSaburov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> написание программы для поиска инфы, нужна помощь 
:(
    Опции темы
Berliner
Дата 17.11.2005, 10:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: 1
Всего: 2



Здраствуйте надо написать программу для поиска инфы в инете. Программа дролжна делать следующее
1. юзер ввдодит в окно программы текст например Audi100 программа должна найти в google инфу по Audi 100 после єтого вывести в текстовый файл такие поля.

Ссылку Заголовок Описание сайта
www.audi.de Audi WV Nur Wir........

Меня попросили сделать такую вещь. Сразу оговорюсь для меня это не коммерческое предложение. Мат выгоды с этого не имею

Подскажите с чего начать и какие классы использовать. Java только начал учить. Думаю сделать это апплетом.
PM   Вверх
KostenkoSergey
Дата 17.11.2005, 11:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



я диплом такой писал smile))) тока у меня не в гугле искал, а веб в базу индексировал smile))
ну а твоя задача на самом деле сводится к следующему :
1. формируешь запрос - шлёшь на гугл используя, что то типа :
Код

      String data = "";
      data += "param="           + URLEncoder.encode("AUDI"   , "UTF-8");
      URL url = new URL("http://google.com");
      HttpURLConnection urlConnect = (HttpURLConnection)url.openConnection();
      urlConnect.setDoOutput(true);
      urlConnect.setDoInput(true);
      OutputStreamWriter wr = new OutputStreamWriter(urlConnect.getOutputStream());
      wr.write(data);
      wr.flush();

тока посмотришь какие там параметры надо передать в поисковик.
А потом получаешь ответ
Код

      // --- get the response
      BufferedReader is = new BufferedReader(new InputStreamReader(urlConnect.getInputStream()));
      String line;
      StringBuffer sb = new StringBuffer();
      while((line = is.readLine()) !=null){
          System.out.println(line);
          sb.append(line);
        }

я для простоты примера всё в строку записал, а ты разпарсишь
его (ответ) как тебе удобно ....
а ваще я встречал
подобные апплетики ....

Это сообщение отредактировал(а) KostenkoSergey - 17.11.2005, 11:30
PM ICQ   Вверх
Berliner
Дата 17.11.2005, 13:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: 1
Всего: 2



Спасибо! буду пытаться.
PM   Вверх
Stampede
Дата 17.11.2005, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 24
Всего: 144



Цитата(Berliner @ 17.11.2005, 10:09)
программа должна найти в google инфу по Audi 100 после єтого вывести в текстовый файл такие поля


Для этого идеально подойдет Google Web API. Это фактически веб-сервисный клиент к их машине поиска. По описанию выглядит очень просто. Единственно, по условию лицензии там есть ограничение: максимум 1000 запросов в сутки. Если тебя это устроит - то полный вперед smile

PM WWW   Вверх
Berliner
Дата 17.11.2005, 16:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: 1
Всего: 2



А как в первом варианте писалось не пойдет?
PM   Вверх
Stampede
Дата 17.11.2005, 18:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Гносеолог
**


Профиль
Группа: Участник Клуба
Сообщений: 963
Регистрация: 25.4.2005
Где: Calgary, Alberta, Canada

Репутация: 24
Всего: 144



Цитата(Berliner @ 17.11.2005, 16:42)
А как в первом варианте писалось не пойдет?


Да оно, может, и пойдет, но как ты собираешься парсить HTML? Вот смотри, как выглядит отдельная позиция в выдаче гугля:

Код

<p class=g><!--m--><a href="http://www.amazon.com/gp/browse.html?node=3435361&">Amazon.com Help</a>
<br><font size=-1>Amazon Mechanical Turk does this, providing a <b>web</b> services <b>API</b> for computers to
<br>integrate Artificial Artificial Intelligence directly into their processing. <b>...</b>
<br><font color=#008000><span dir=ltr>www.amazon.com/gp/browse.html?node=3435361&amp;</span> - 32k - </font>
<nobr>  <a class=fl href="http://64.233.167.104/search?q=cache:6WPQsJfIGoIJ:www.amazon.com/gp/browse.html%3Fnode%3D3435361%26+web+api&hl=en&client=firefox-a">Cached</a> - 
<a class=fl href="/search?hl=en&hs=Tv5&lr=&client=firefox-a&rls=org.mozilla:en-US:official&q=related:www.amazon.com/gp/browse.html%3Fnode%3D3435361%26">Similar&nbsp;pages</a></nobr></font><!--n--> 


Ты, конечно, можешь типа искать элемент <p> с классом "g", выдирать оттуда линк, потом в качестве описания брать все от конца линка до "<br><font color=#008000>", ну и так далее.

Но я бы после такого навсегда потерял сон, потому что измени гугловцы формат выдачи - и фсе, программа просто перестанет работать.

Так штаааа...

PM WWW   Вверх
Berliner
Дата 18.11.2005, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: 1
Всего: 2



Ошибку выдает я думаю что неправильно исключения обработал. Код ошибки сейчас не могу дать комп в другой комнате, а там интернета нет. Подскажите пожалуста что не правильно?
Код

package u;

/**
 *
 * @author Administrator
 */
import java.lang.*;

public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
       
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     try{
    URL address = new URL("http://java.sun.com/index.html");
     }
     catch (MalformedURLException e1){
         System.out.println("Не могу подключится !");
     }
        // TODO code application logic here
        
    }
    
}



Это сообщение отредактировал(а) Berliner - 18.11.2005, 14:09
PM   Вверх
batigoal
Дата 18.11.2005, 14:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Нелетучий Мыш
****


Профиль
Группа: Участник Клуба
Сообщений: 6423
Регистрация: 28.12.2004
Где: Санктъ-Петербургъ

Репутация: 24
Всего: 151



У меня прошло без ошибок.


--------------------
"Чтобы правильно задать вопрос, нужно знать большую часть ответа" (Р. Шекли)
ЖоржЖЖ
PM WWW   Вверх
Berliner
Дата 18.11.2005, 16:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: 1
Всего: 2



упс ....сейчас код ошибки кину(все на дискетке принесу ошибку)
PM   Вверх
Berliner
Дата 18.11.2005, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: 1
Всего: 2



сразу вместе код и ошибка! почему NEtBeans ругается?

Код

init:
deps-jar:
Compiling 1 source file to C:\Documents and Settings\Administrator\? Ў®зЁ© бв®«\ji\build\classes
C:\Documents and Settings\Administrator\? Ў®зЁ© бв®«\ji\src\ji\Main.java:23: cannot find symbol
symbol  : class URL
location: class ji.Main
    URL address = new URL("http://java.sun.com/index.html");
C:\Documents and Settings\Administrator\? Ў®зЁ© бв®«\ji\src\ji\Main.java:23: cannot find symbol
symbol  : class URL
location: class ji.Main
    URL address = new URL("http://java.sun.com/index.html");
C:\Documents and Settings\Administrator\? Ў®зЁ© бв®«\ji\src\ji\Main.java:25: cannot find symbol
symbol  : class MalformedURLException
location: class ji.Main
     catch (MalformedURLException e1){
3 errors
‘?Ћ?ЉЂ ‡Ђ‚…??…?Ђ ?…“„Ђ—?Ћ (®ЎйҐҐ ўаҐ¬п: 0 бҐЄг­¤)



package ji;

import java.lang.*;

public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
       
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     try{
    URL address = new URL("http://java.sun.com/index.html");
     }
     catch (MalformedURLException e1){
         System.out.println("Rabotaet!");
     }
         
        
    }
    
}





PM   Вверх
bars_uz
Дата 18.11.2005, 17:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 26.3.2005
Где: Tashkent

Репутация: нет
Всего: нет



Bratan poprobue:

Код

package ji;

import java.net.URL;
import java.net.MalformedURLException;

public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
       
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     try{
    URL address = new URL("http://java.sun.com/index.html");
     }
     catch (MalformedURLException e1){
         System.out.println("Rabotaet!");
     }
         
        
    }
    
}

PM MAIL ICQ   Вверх
KostenkoSergey
Дата 18.11.2005, 18:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



наверное ты через проксю какую то ходишь... да ?

Добавлено @ 18:45
Цитата(Stampede @ 17.11.2005, 18:53)
Да оно, может, и пойдет, но как ты собираешься парсить HTML?


дык это разве проблема ?
Код

package kostenko.diplom.spider;
import javax.swing.text.html.HTMLEditorKit;
import javax.swing.text.html.HTML;
import javax.swing.text.MutableAttributeSet;
/**
 * HTML parsing proceeds by calling a callback for
 * each and every piece of the HTML document.  This
 * simple callback class simply prints an indented
 * structural listing of the HTML data.
 */
class HTMLParseLister extends HTMLEditorKit.ParserCallback {
....

а ваще ж и любым саксом можно ?
тем паче универсальность ему никчему - ответ всегда в одинаковом виде будет....


PM ICQ   Вверх
Guest
Дата 21.11.2005, 13:49 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











вот что уже написал, вроде компилиться без ошибок. написал : вводим адрес гугла , и подключаемся А дальше? натолкните на мысль какие классы использовать и логику подскажите плиз. Сори я только учусь

Код

package ji;

import java.net.*;
import java.lang.*;
import java.io.*;

public class Main {
    
    /** Creates a new instance of Main */
    public Main() {
       
    }
    
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     try{
    URL address = new URL("http://google.com");
    try{
    address.openConnection();
    }
    catch (IOException e2){ 
    System.out.println("You don't have connection");
    }
       }
    
     catch (MalformedURLException e1){
         System.out.println("Have a look at address ");
     }
      
     
     } 
      
    
    }
    



  Вверх
KostenkoSergey
Дата 22.11.2005, 09:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 290
Регистрация: 31.10.2005
Где: Kiev

Репутация: 3
Всего: 8



Цитата(Guest @ 21.11.2005, 13:49)
какие классы использовать и логику подскажите плиз

уже ж тебе ответили и примеры дали, или я вопрос не вразумел?
smile
PM ICQ   Вверх
Berliner
Дата 22.11.2005, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 803
Регистрация: 18.5.2005

Репутация: 1
Всего: 2



ок вроде подконектился к гугглу а как запрос сформировать и отослать?

Код

String data = "";   //а что тут?
      data += "param="           + URLEncoder.encode("AUDI"   , "UTF-8");//Вот тут запрос формируется?
      URL url = new URL("http://google.com");
      HttpURLConnection urlConnect = (HttpURLConnection)url.openConnection();//установливаем коннект?
      urlConnect.setDoOutput(true);//а что тут делаем?
      urlConnect.setDoInput(true);//и тут?
      OutputStreamWriter wr = new OutputStreamWriter(urlConnect.getOutputStream());
      wr.write(data);
      wr.flush();




я в твоем примере не все понял. просто знаний не хватает. в коментах я написал где не понял ,не мог бы ты мне пояснить подробнее,пожалуста?(там где я написал в коментариях). ну очень хочется научится java . Я и сам пытаюсь.
PM   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0575 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.