teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

追記:リスクについて実例を追記

2016/11/25 08:08

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -4,6 +4,7 @@
4
4
  https://www.google.co.jp/search?q=ほげほげ
5
5
 
6
6
  ※googleさんは自動アクセスによる検索および検索結果の取得にはかなり敏感なので直ぐにアクセス拒否されますのでご注意ください。
7
+ 実例:[(https://teratail.com/questions/48425)open-uriでgoogle検索結果を取得しようとすると、503 Server Unavable (OpenURI::HTTPError)がでる](https://teratail.com/questions/48425)
7
8
 
8
9
  ```VBScript
9
10
  use_ie

4

コード修正

2016/11/25 08:08

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,4 +1,3 @@
1
-
2
1
  とりあえずできない回答だけではなんですので、
3
2
  検索したい文字列を指定して検索結果のページを表示するだけなら以下のコードで可能です。
4
3
  ※ 「ほげほげ」を検索したい場合
@@ -13,7 +12,8 @@
13
12
 
14
13
  ' IE起動
15
14
  Set ie = CreateObject("InternetExplorer.Application")
15
+ ' 「ほげほげ」を検索 (「ほげほげ」をURLエンコードしたものが「%82%D9%82%B0%82%D9%82%B0」)
16
- ie.Navigate "http://www.google.co.jp/"
16
+ ie.Navigate "https://www.google.co.jp/search?q=%82%D9%82%B0%82%D9%82%B0"
17
17
  ie.Visible = True
18
18
  waitIE ie
19
19
  ' 1件目のサイトのタイトルを表示

3

追記:検索したい文字列を指定して検索結果のページを表示するコード

2016/11/25 08:01

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,3 +1,32 @@
1
+
2
+ とりあえずできない回答だけではなんですので、
3
+ 検索したい文字列を指定して検索結果のページを表示するだけなら以下のコードで可能です。
4
+ ※ 「ほげほげ」を検索したい場合
5
+ https://www.google.co.jp/search?q=ほげほげ
6
+
7
+ ※googleさんは自動アクセスによる検索および検索結果の取得にはかなり敏感なので直ぐにアクセス拒否されますのでご注意ください。
8
+
9
+ ```VBScript
10
+ use_ie
11
+
12
+ Sub use_ie()
13
+
14
+ ' IE起動
15
+ Set ie = CreateObject("InternetExplorer.Application")
16
+ ie.Navigate "http://www.google.co.jp/"
17
+ ie.Visible = True
18
+ waitIE ie
19
+ ' 1件目のサイトのタイトルを表示
20
+ ' ここは省略
21
+ MsgBox "参照されているページのコードでは取れないのでご自分でDOMを解析してコードを書いてください。"
22
+ ' 制御を破棄
23
+ ie.Quit
24
+ Set ie = Nothing
25
+ End Sub
26
+ ```
27
+
28
+ ---
29
+
1
30
  「JScript / VBScript (WSH)で,IEを自動操作しよう」のページが書かれたのは2009年7月13日です。
2
31
  参照されているページが古すぎます。
3
32
  今時点では、id属性に"q"を持つ要素はgoogle.co.jpのページには存在しません。参照されたコードに記載されているその他の要素も存在しないでしょう。
@@ -10,4 +39,4 @@
10
39
 
11
40
  当時はこれで動作したと思いますが、今時点ではgoogle.co.jpのページは当時とは別物になってます。
12
41
 
13
- スクレイピングする場合は、対象のページが変更されれば動作しなくなることを知った上で覚悟してプログラム開発および実行をしましょう。今日動いたとしても明日動くとは限りません。
42
+ スクレイピングする場合は、対象のページが変更されれば動作しなくなることを知った上で覚悟してプログラム開発および実行をしましょう。今日動いたとしても明日動くとは限りません。

2

追記

2016/11/25 07:58

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -1,5 +1,13 @@
1
1
  「JScript / VBScript (WSH)で,IEを自動操作しよう」のページが書かれたのは2009年7月13日です。
2
2
  参照されているページが古すぎます。
3
+ 今時点では、id属性に"q"を持つ要素はgoogle.co.jpのページには存在しません。参照されたコードに記載されているその他の要素も存在しないでしょう。
4
+
5
+ ```Javascript
6
+ ie.document.getElementById("q").value
7
+ ```
8
+
3
9
  urlも```http://www.google.co.jp/```ではなく今は```https://www.google.co.jp/```です。
10
+
4
11
  当時はこれで動作したと思いますが、今時点ではgoogle.co.jpのページは当時とは別物になってます。
12
+
5
13
  スクレイピングする場合は、対象のページが変更されれば動作しなくなることを知った上で覚悟してプログラム開発および実行をしましょう。今日動いたとしても明日動くとは限りません。

1

文言修正

2016/11/25 07:10

投稿

Y.H.
Y.H.

スコア7918

answer CHANGED
@@ -2,4 +2,4 @@
2
2
  参照されているページが古すぎます。
3
3
  urlも```http://www.google.co.jp/```ではなく今は```https://www.google.co.jp/```です。
4
4
  当時はこれで動作したと思いますが、今時点ではgoogle.co.jpのページは当時とは別物になってます。
5
- スクレイピングする場合は、対象のページが変更されれば動作しなくなることを知った上で覚悟して使用しましょう。今日動いたとしても明日動くとは限りません。
5
+ スクレイピングする場合は、対象のページが変更されれば動作しなくなることを知った上で覚悟してプログラム開発および実行をしましょう。今日動いたとしても明日動くとは限りません。