• ベストアンサー

JAVAで「Yahoo Japan!」に接続

現在JAVAを勉強している者ですが、 ある課題で、 「JAVAプログラムを起動して、入力した単語(2単語くらい)を自動的にYahoo Japanに接続して、その単語を検索する」というプログラムを作らなくてはいけないのですが、全くわからない状態です。 よろしかったら、是非わかりやすく教えてください! おねがいします!m(_ _)m

質問者が選んだベストアンサー

  • ベストアンサー
  • sakyo-t
  • ベストアンサー率70% (19/27)
回答No.1

仕様的にあいまいな点が多々あるので適当に仮定して OS=Windows JAVAプログラム=JAVAのCUIアプリケーションでコンソール(コマンドプロンプト)から実行 自動的に接続=Internet Explorerを起動 入力=コンソールから英語で2つ単語入力 1.JAVAアプリの作成 参考:http://www.hellohiro.com/appli.htm 2.コンソールから入力 参考:http://milkyway.merseine.nu/Java/Java051.html 3.URLの作成 http://search.yahoo.co.jp/bin/search?p=word1+word2 みたいな感じのURLを作成 http://search.yahoo.co.jp/bin/search?p=検索単語1+検索単語2 3.外部コマンド実行 参考:http://milkyway.merseine.nu/Java/Java051.html 実行するコマンド C:\Program Files\Internet Explorer\IEXPLORE.EXE "作ったURL" ってな感じでいかがでしょ?

その他の回答 (2)

  • gimmick
  • ベストアンサー率49% (134/270)
回答No.3

皆さんがおっしゃるように、仕様が不明確です。極端な話、こんなコードでも良いことになってしまいます。(windows限定) class YahooSearcher {   public static void main(String[] args) {     try {       String url;       if (args.length > 0) {         url = "http://search.yahoo.co.jp/bin/search?p=";         for (int i = 0; i < args.length; i++) {           url += args[i] + "+";         }         url = url.substring(0, url.length() - 1);       }       else {         url = "http://www.yahoo.co.jp";       }       Runtime.getRuntime().exec("cmd /c start " + url);     }     catch(Throwable t) {       System.out.println(t.getMessage());     }   } } #課題とはいえ、簡単すぎるかも…。

mura-i
質問者

お礼

調べてみたところ、表示するページのソースさえわかればいいことだったので、ブラウザは関係なかったようです。 お手数かけて申し訳ありませんでした!

回答No.2

こんな感じでどうでしょうか。 import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.methods.GetMethod; public class YahooSearch { public static void main(String[] args) { if (args.length < 1) { System.out.println("Please Input Search Key Words"); return; } StringBuffer uri = new StringBuffer("http://search.yahoo.co.jp/bin/query?p="); for (int cnt = 0;cnt < args.length;cnt++) { if (cnt != 0) { uri.append("+"); } uri.append(args[cnt]); } GetMethod get = null; try { get = new GetMethod(uri.toString()); new HttpClient().executeMethod(get); String response = get.getResponseBodyAsString(); System.out.println("Response:" + response); } catch (Exception e) { e.printStackTrace(); } finally { if (get != null) { get.releaseConnection(); } } } } #1さん同様、仕様がよくわかりませんが・・・。 検索した結果をどうするのかわかりませんが、 上記ではとりあえずレスポンスをすべて標準出力へ 出力しています。 実際はこれをブラウザへ読ませれば 普通に検索結果画面が見れますよ。 この方法では、下記の2つのライブラリが 必要になります。 Apache Commons HttpClient Apache Commons Logging 私が使用したのは以下のjarです commons-httpclient-2.0-rc1.jar commons-logging-api.jar 無い場合は下記URLよりダウンロードしてください。 http://jakarta.apache.org/site/binindex.cgi

mura-i
質問者

お礼

助かります! すいません、使用はTurboLinuxで、 使っているブラウザはMozillaです。

関連するQ&A