- 締切済み
googleで検索するには?
こちらのサイトの http://www.hellohiro.com/url.htm 『URLを指定してそのファイルの内容を表示』を参考に 「引数を検索ワードにして内容を表示」というものを 作成したいなと思っています。 そこで質問なのですが、googleで検索させるにはどのようにURLを指定するとよいのでしょうか? String str = "http://www.google.co.jp" + args[0]; URL helloURL = new URL(str); 上のような感じでURLと検索ワードを繋げた形式で作りたいのですが、よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- lawson
- ベストアンサー率44% (29/65)
No2です。 http://www.kanzaki.com/docs/http-errors.html をみて下さい。 403 についての説明が載ってます。 どうして403がでるのかわからないです。 もしかしたら、searchという名前の実ファイル等を 見に行っていると勘違いされているかもしれないです。 どうしてそのようになってしまったのかは、 私にはわかりません。 それはさておき、 やりたいことを 解決してくれるJAVAのコードのイメージは 以下のようなものだと思います。 以前私が作ったプログラムから部分的に コピペして、すこし変えただけなので、 動作確認はしてないです。 String requestParam = null; //requestParmには好きなリクエストパラメータ文字列 //を入れてください java.net.URL urlObj = null; java.net.HttpURLConnection urlCon = null; String place = "http://www.google.co.jp" + "?" + requestParam ; java.io. BufferedReader br = null; try { urlObj = new java.net.URL(place); urlCon = (java.net.HttpURLConnection) urlObj.openConnection(); // urlCon.setRequestMethod("GET"); urlCon.setRequestMethod("POST"); br = new java.io.BufferedReader( new java.io.InputStreamReader(urlCon.getInputStream())); //while等で回して、好きにしてください String line = br.readLine(); } catch(Exception e) { e.printStackTrace(); } finally { try { br.close(); } catch(java.io.IOException ioe) { } urlCon.disconnect(); } >(※[検索文字]は、半角英数はそのままで >全角はURL文字(あいう:%82%A0%82%A2%82%A4 のように)に変換する必要あり) これについては、 たしか、 URLEncoder というクラスを使えばできたような気がします。 半角英数文字に関してはそのままで、それ以外の文字や、 リクエストパラメータの構成要素( & や = など ) を %82%A0%82%A2%82%A4のような形式に変換してくれるようです。 すいませんが、不確かな記憶で発言しています。
- tediwec
- ベストアンサー率70% (21/30)
こんにちは。 Google Web APIを使ってみましょう。
- 参考URL:
- http://www.google.com/apis/
- lawson
- ベストアンサー率44% (29/65)
http://www.hellohiro.com/url.htm の HelloWorldURL.java の URL helloURL = new URL("http://www.hellohiro.com/src/HelloWorld.txt"); を URL helloURL = new URL("http://google.co.jp"); に変更すると、 DOS窓にHTMLのソースが 表示されるとおもいますが。 たぶん。 ブラウザならソースを解析して、 必要な画像等をダウンロードしながら ページを表示するでしょうが。 DOS窓にそんな機能はないですから。 なにやら、 + args[0] を 文字列連結すればどうのこうのと・・・ お考えのようですが http://www.google.co.jp?リクエストパラメータ の googleサイトの リクエストパラメータの仕様の部分は 知っているのでしょうか? 普通の利用者はそんなこと知らないですが・・。 裏では実はgoogleサイトを使ってるけど、 見た目上、自分が開発した検索機能をもったもの にしたいということなんでしょうか? http://www.google.co.jp をブラウザ上でたたいた時に表示される。 HTMLソースのformタグを解読しながら、 いろいろ試行錯誤すればわかるかもしれないですが そんなめんどくさいことやる気もおきないです。 検索結果をどこに、どのように表示させる ということでしょうか? JAVAのコードを載せるとか、以前に なにがしたいのかよくわからない。
- abayama
- ベストアンサー率48% (38/79)
googleのサイトに書いてあるのをそのままコピペすればいいのではないでしょうか。
お礼
ご回答ありがとうございます。 ええと、googleのサイトを見たのですがこれはHTML?ですよね^^;多分。。 もしこちらの勘違いであれば、お詫びいたします。 よろしければ参考程度でよろしいのでJAVAコードを載せて頂くと嬉しいのですが‥‥。
補足
ご回答ありがとうございます。 >裏では実はgoogleサイトを使ってるけど、 見た目上、自分が開発した検索機能をもったもの にしたいということなんでしょうか? >なにがしたいのかよくわからない。 そんな大それた事をするわけではないです^^; こちらの質問が伝わりにくいようで失礼しました。 以下、補足です。 URL helloURL = new URL("http://google.co.jp"); で指定したアドレスのHTMLソースが表示されるのは試して見ました。 そこで、同じくアドレスを指定して検索結果のHTMLソースを表示したいのです。 (そこからはヒットしたサイトのURL一覧を取得しようと考えてますが 先ずはHTMLソースが返ってこないと話にならないので‥‥) >リクエストパラメータの仕様の部分は知っているのでしょうか? 詳しくは知らないのですが、最低限パラメータは http://www.google.co.jp/search?q=[検索文字]&hl=ja で検索できるようなので URL helloURL = new URL("http://www.google.co.jp/search?q=" + args[0] + "&hl=ja"); で行けそうな気がします。 (※[検索文字]は、半角英数はそのままで 全角はURL文字(あいう:%82%A0%82%A2%82%A4 のように)に変換する必要あり) ところが実際には簡単に abc などで試してみると次のような表示がでます (ブラウザでは検索結果が表示されます) java.io.IOException: Server returned HTTP response code: 403 for URL: http://www .google.co.jp/search?q=abc&hl=ja at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:709) at java.net.URL.openStream(URL.java:960) at HelloWorldURL.main(HelloWorldURL.java:14) ここで質問の「googleで検索するには?」になるのですが‥‥ かなり省いてましたね。。 lawsonさま、他のみなさま、ご回答よろしくお願いしますm(_ _)m