読んでいただきありがとうございます。
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件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
追伸です。
>Net Work Monitor とか、通信を監視するモニターで監視したいところですが。
これは良いのですが、
後継の Microsoft Message Analyzer も入れたら、IEがうまく開かなくなりましたので、たぶん、どちらか一つのようです。
このスレの質問とは直接関係のないことですけれどもね。
たぶん、当たらずとも遠からずです。
No.1
- 回答日時:
こんにちは。
ご質問の要件は100%理解しているのですが、どう応えてよいのか分からないですね。
>ルータの再起動を行うと「YAHOOから検索⇒リンクをクリック」 でアクセスできますし、
ルーター再起動って、それこそ、まずくないでしょうか。(^^;
本当に、通信が切れてしまったのでしょうか。
Net Work Monitor とか、通信を監視するモニターで監視したいところですが。
いわゆるロボット検索(crawling)による情報収集は嫌われるのは、サーバーに負担がかかるからですが、ルータの再起動で可能になるなら、IPアドレスが記録されているということですね。あまり繰り返すと、プロバイダーから文句言ってくることもあるそうです。
>300回も上記のような処理を繰り返すのは良くないのでしょうか。
良い悪いはなんとも言えません。この私でもすることがありますからね。
それよりも、IEでそれだけ繰り返すというのは、マクロの内容にもよりますが、PCに対する負担も大きいように思います。ひとつのサイトの所要時間はどのぐらいになりますか?本来なら一瞬ですよね。
コードをみると、サイトは同じ構造を持っているという意味ですよね。
一部の人は、Sleepとか、Wait で、かなり問題が発生しないように工夫している人もいます。
カタログサイトのようなところで、相手が許していればよいのですが、それを取るというのは、禁止されていたりしますから、それはお薦めできません。
それと、もうひとつは、IEオートメーションですが、
winHttp.WinHttpRequest
なんていう代物を使ったら、いかがでしょうか。こちらの方が反応自体は速いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) VBAでの共有パスにつきまして 1 2023/03/04 17:24
- その他(ブラウザ) このページは動作していません HTTP ERROR 401 2 2022/11/28 12:11
- Yahoo!メール iPhoneでの操作を教えてください。 Yahoo!メールに来たサイトにアクセス(Yahoo!メール 1 2023/08/26 09:19
- Android(アンドロイド) ウェブサイトは読み込めませんでした。更新 が解決できません。 1 2022/04/14 22:58
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- その他(IT・Webサービス) WEBサイト内のファイルを探す方法は? 1 2022/11/11 16:38
- ネットワーク ホームページを何度もリロードしてるとブラックリストに入れられてアクセスできなくなりますか? 1 2023/03/30 12:18
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- セキュリティホール・脆弱性 前職(個人クリニック)のWebサイトを見ようとするとアクセス拒否。と表示されます。 揉めてお互い気持 3 2022/04/11 10:47
- その他(ブラウザ) Edge internet explorer モードのサイトの再読み込みを許可 表示されない 2 2023/03/03 12:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
シグナル 6(SIGABRT)とは?
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
VBAでBook読み込み時の非表示方...
-
特定のファイルを他のプロセス...
-
VB6にてネットワーク上にある共...
-
【C#】Page_Loadさせない方法に...
-
ProgressBarを用いる場合、全体...
-
マクロで、次のコードへ行く前...
-
VBA For Each 〜 複数条件について
-
VBAの進捗状況をリアルタイ...
-
特定の名前のオートシェイプの...
-
エクセルVBAでロックをかけたい
-
vbaレポート名の指定が間違って...
-
DVD FLICK 最後の書き込み段階...
-
private subモジュールを他のモ...
-
vbaのエラー対応(実行時エラー...
-
【VBA】IE操作し過ぎてアクセス...
-
StatusStripの表示が更新されな...
-
どう増強すべきか
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
【C#/Java?】try-catchでcatch...
-
IF文に時間(何時から何時ま...
-
vbaのエラー対応(実行時エラー...
-
マクロで、次のコードへ行く前...
-
private subモジュールを他のモ...
-
特定の名前のオートシェイプの...
-
シグナル 6(SIGABRT)とは?
-
Excel VBA セルの名前があるか...
-
特定のファイルを他のプロセス...
-
どうやってもFor文を抜けてしま...
-
VBA For Each 〜 複数条件について
-
ドリブン??
-
VB6にてネットワーク上にある共...
-
【VBA】エラー処理で別プロシー...
-
VBA 複数の行を高速で削除する...
-
【C#】Page_Loadさせない方法に...
-
どう増強すべきか
-
エクセル VBAで複数セル選択時...
-
UWSCのTHREADについて
-
Functionで戻り値を複数返す方法
おすすめ情報