dポイントプレゼントキャンペーン実施中!

読んでいただきありがとうございます。
ExcelのマクロでIEを操作しサイトから情報収集するツールを作成している者です。

今回教えていただきたいのは、VBAでのIE操作で、サイト参照をし過ぎるとアクセス拒否等をされてしまうケースはあるのでしょうか?ということですm(__)m
またその対策があれば教えていただきたいです。

抜粋したものですが下記のようなソースでHtmlファイルを読み込んでいます。
--------------------------------------------------------------
Set ie = CreateObject("InternetExplorer.Application")
ie.navigate URL
Do While objIE.readystate < 4
On Error GoTo ERR
Loop
Html = ie.document.all.tags("tbody")(0).innertext
Cells(i,1) = Html
ie.Quit
--------------------------------------------------------------
このようなHtmlファイルを読み込む処理を300回ほどループしています。

指定したURLへアクセスをするループ処理を行う中で、途中から急にURLにアクセスできなくなります。
その後自分で「YAHOOから検索」⇒「リンクをクリック」すると
「404 NotFoundError」となってしまいます。まるでそのサイトからアクセス拒否されているように見えます。
ルータの再起動を行うと「YAHOOから検索⇒リンクをクリック」 でアクセスできますし、ツールでのアクセスもできるようになるので、指定するURLは間違っていません。
ですがしばらくするとまた同じように404エラーが出てしまいます。
悪質なWEBクローラ等とみなされてアクセス拒否をされているのでしょうか。。。
やはり、300回も上記のような処理を繰り返すのは良くないのでしょうか。

ここまで読んでいただきありがとうございます。
是非ご意見、ご回答よろしくお願いいたしますm(__)m

A 回答 (2件)

追伸です。



>Net Work Monitor とか、通信を監視するモニターで監視したいところですが。
これは良いのですが、

後継の Microsoft Message Analyzer も入れたら、IEがうまく開かなくなりましたので、たぶん、どちらか一つのようです。
このスレの質問とは直接関係のないことですけれどもね。
たぶん、当たらずとも遠からずです。
    • good
    • 0

こんにちは。



ご質問の要件は100%理解しているのですが、どう応えてよいのか分からないですね。

>ルータの再起動を行うと「YAHOOから検索⇒リンクをクリック」 でアクセスできますし、

ルーター再起動って、それこそ、まずくないでしょうか。(^^;

本当に、通信が切れてしまったのでしょうか。
Net Work Monitor とか、通信を監視するモニターで監視したいところですが。

いわゆるロボット検索(crawling)による情報収集は嫌われるのは、サーバーに負担がかかるからですが、ルータの再起動で可能になるなら、IPアドレスが記録されているということですね。あまり繰り返すと、プロバイダーから文句言ってくることもあるそうです。

>300回も上記のような処理を繰り返すのは良くないのでしょうか。
良い悪いはなんとも言えません。この私でもすることがありますからね。

それよりも、IEでそれだけ繰り返すというのは、マクロの内容にもよりますが、PCに対する負担も大きいように思います。ひとつのサイトの所要時間はどのぐらいになりますか?本来なら一瞬ですよね。

コードをみると、サイトは同じ構造を持っているという意味ですよね。
一部の人は、Sleepとか、Wait で、かなり問題が発生しないように工夫している人もいます。

カタログサイトのようなところで、相手が許していればよいのですが、それを取るというのは、禁止されていたりしますから、それはお薦めできません。

それと、もうひとつは、IEオートメーションですが、

winHttp.WinHttpRequest
なんていう代物を使ったら、いかがでしょうか。こちらの方が反応自体は速いです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!