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

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

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

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

3512閲覧

プログラムから InernetExplorer の Google検索

BeatStar

総合スコア4958

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

C++

C++はC言語をもとにしてつくられた最もよく使われるマルチパラダイムプログラミング言語の1つです。オブジェクト指向、ジェネリック、命令型など広く対応しており、多目的に使用されています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/11/25 06:53

編集2016/11/25 07:21

JavaScript/Python/C++ のいずれかで Googleの検索窓に指定キーワードを入れて
その検索結果ページのアドレスを取得したいのですが、なぜかエラーになります。

JScript / VBScript (WSH)で,IEを自動操作しよう

というページの JavaScript版をそのままコピペして試してみたのですが、


行: 12
文字: 5
エラー: 'document.getElementById(...)'は Null またはオブジェクトではありません。
コード: 800A138F
ソース: Microsoft JScript 実行時エラー


というダイアログが出て、使えません。

どうすればいいでしょうか。

試しに Googleの検索窓があるページを Ctrl + S でダウンロードし、
HTMLの中身を覗いたところ、改行なしですべて書き込まれているようです。
なので、どうすればいいのかがわからないのです。

自分で組もうにも、参考にするサイトや書籍のソースコードが間違っているならどうしようもないですし。

( 選択肢付き問題で候補としてあがっているものがすべて間違いで、答えは "そもそも存在しない" みたいなものですし。 )

やってみたのは JavaScriptですが、Python/ C/C++ でもOKです。
ただ、C++ の場合は MinGW でやっているので、MFCを使う方法は無理です。

宜しくお願い致します。

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

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

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

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

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

guest

回答1

0

ベストアンサー

とりあえずできない回答だけではなんですので、
検索したい文字列を指定して検索結果のページを表示するだけなら以下のコードで可能です。
※ 「ほげほげ」を検索したい場合
https://www.google.co.jp/search?q=ほげほげ

※googleさんは自動アクセスによる検索および検索結果の取得にはかなり敏感なので直ぐにアクセス拒否されますのでご注意ください。
実例:(https://teratail.com/questions/48425)open-uriでgoogle検索結果を取得しようとすると、503 Server Unavable (OpenURI::HTTPError)がでる

VBScript

1use_ie 2 3Sub use_ie() 4 5 ' IE起動 6 Set ie = CreateObject("InternetExplorer.Application") 7 ' 「ほげほげ」を検索 (「ほげほげ」をURLエンコードしたものが「%82%D9%82%B0%82%D9%82%B0」) 8 ie.Navigate "https://www.google.co.jp/search?q=%82%D9%82%B0%82%D9%82%B0" 9 ie.Visible = True 10 waitIE ie 11 ' 1件目のサイトのタイトルを表示 12 ' ここは省略 13 MsgBox "参照されているページのコードでは取れないのでご自分でDOMを解析してコードを書いてください。" 14 ' 制御を破棄 15 ie.Quit 16 Set ie = Nothing 17End Sub

「JScript / VBScript (WSH)で,IEを自動操作しよう」のページが書かれたのは2009年7月13日です。
参照されているページが古すぎます。
今時点では、id属性に"q"を持つ要素はgoogle.co.jpのページには存在しません。参照されたコードに記載されているその他の要素も存在しないでしょう。

Javascript

1ie.document.getElementById("q").value

urlもhttp://www.google.co.jp/ではなく今はhttps://www.google.co.jp/です。

当時はこれで動作したと思いますが、今時点ではgoogle.co.jpのページは当時とは別物になってます。

スクレイピングする場合は、対象のページが変更されれば動作しなくなることを知った上で覚悟してプログラム開発および実行をしましょう。今日動いたとしても明日動くとは限りません。

投稿2016/11/25 07:06

編集2016/11/25 08:08
Y.H.

総合スコア7914

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

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

BeatStar

2016/11/25 07:21

試しに Googleの検索窓があるページを Ctrl + S でダウンロードし、 HTMLの中身を覗いたところ、改行なしですべて書き込まれているようです。 なので、どうすればいいのかがわからないのです。
BeatStar

2016/11/25 07:22

ご回答ありがとうございます。 試しに Googleの検索窓があるページを Ctrl + S でダウンロードし、 HTMLの中身を覗いたところ、改行なしですべて書き込まれているようです。 なので、どうすればいいのかがわからないのです。 HTMLでいう、id はどれになるのでしょうか。 ( id という概念じゃなく、割り当てられている文字列の方です。 )
Y.H.

2016/11/25 07:23

ダウンロードしたものをエディタで開いてご自分で適当ななところで改行すればよいのでは?
Y.H.

2016/11/25 07:27

「( id という概念じゃなく、割り当てられている文字列の方です。 )」とはどういう意味でしょう? HTMLタグにはid属性は存在します。 参照されているスクリプトが作成された当時は実際に id属性に"q"が設定された要素(検索窓のinput要素)が存在したのでしょう。 が、今時点のページでは id属性に"q"が設定された要素が存在しないのでエラーになっています。 HTMLの要素および構成をご自分で解析し理解できない場合は、望まれているものを作成するのは困難だと思います。
Y.H.

2016/11/25 08:14

会社などで実行しアクセス拒否されるようなことがある場合は、たぶんグローバルIPアドレスでgoogle検索ができないようにアクセス拒否されると思います。よって会社などで実行しアクセス拒否されたら会社のネットワークからの検索アクセスすべてが拒否されるかもしれませんので、会社のほかの人の迷惑にならないようにご留意ください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問