質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

Q&A

解決済

2回答

2232閲覧

C# HttpClientを使用してGoogle検索結果を取得したい。

fama

総合スコア105

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

検索

検索は、あるデータの集まりの中から 目的のデータを見つけ出すことです。

Google

Googleは、アメリカ合衆国に位置する、インターネット関連のサービスや製品を提供している企業です。検索エンジンからアプリケーションの提供まで、多岐にわたるサービスを提供しています。

0グッド

0クリップ

投稿2020/04/02 19:23

現在、C#言語にてHttpClientについての学習を始めました。

まだ始めたばかりの為、参考サイトを読みながら少しずつ理解を行っております。

この度、サンプルとしてGoogleのTOPページ( https://www.google.com/?hl=ja )から検索ワードを入力し送信するという処理をHttpClientにて実装してみようとしているのですが、正常に取得が出来ません。

C#

1private async void button2_Click(object sender, EventArgs e) 2 { 3 var client = new HttpClient(); 4 var response = new HttpResponseMessage(); 5 var content = new FormUrlEncodedContent(new SortedDictionary<string, string> 6 { 7 { "q", "適当" }, 8 { "btnK", "submit" } 9 }) ; 10 11 response = await client.PostAsync("https://www.google.com/?hl=ja/search", content); 12 13 string result = await response.Content.ReadAsStringAsync(); 14 Console.WriteLine(result); 15 }

取得したresultには以下のようなHtmlが入り、エラーが書かれている状態です。

html

1<!DOCTYPE html> 2<html lang=en> 3 <meta charset=utf-8> 4 <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width"> 5 <title>Error 405 (Method Not Allowed)!!1</title> 6 <style> 7 *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px} 8 </style> 9 <a href=//www.google.com/><span id=logo aria-label=Google></span></a> 10 <p><b>405.</b> <ins>That’s an error.</ins> 11 <p>The request method <code>POST</code> is inappropriate for the URL <code>/search</code>. <ins>That’s all we know.</ins> 12

どこが間違えているのかがわからない状態なのですが、詳しくアドバイス頂ける方がいらっしゃいましたらご指摘お願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

どこが間違えているのかがわからない状態なのですが

「Googleの検索結果を機械的に取得する行為」そのものです。

Google の利用規約では、どのような種類かに関わらず、自動化されたクエリを Google から明示的な許可を事前に得ずに Google のシステムに送信することは禁止されています。(Search Consoleヘルプより)

投稿2020/04/02 22:54

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fama

2020/04/03 05:26

ご回答頂きましてありがとうございます。 Google検索ページでHttpClientの練習をしようと思ったのがそもそもの間違えだったのですね。
guest

0

googleの検索機能を使いたいのであれば、google側が用意してくれている検索APIの方を使う必要があるかと思います。

Custom Search APIを使ってGoogle検索結果を取得する
https://qiita.com/zak_y/items/42ca0f1ea14f7046108c

↑の記事内では途中からPythonになっているので、C#でやるのでしたら
たぶんNuGetかr
Google.Apis.Customsearch.v1
を入れて、

https://stackoverflow.com/a/16323305
のように書けば取れるんではないかと思います。

#HttpClient使ってないので勉強にはならんですね。

投稿2020/04/03 00:26

takabosoft

総合スコア8356

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

fama

2020/04/03 05:27

ご回答頂きましてありがとうございます。 この度はHttpClient処理の練習をしたいというのが主目的の為、APIを使用して行う予定が現時点ではございません。 ご丁寧にアドバイスを頂きまして嬉しく思います。 ありがとうございましたm(_ _)m
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問