カテ違い失礼しました。なにぶん始めてなもので・・・って言い訳にならないですよねorz
では 再度質問します
UWSCというマクロツールで ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラムを作りたいのですが
うまくいきません。
http://detail.chiebukuro.yahoo.co.jp/qa/question …
私の作ったプログラムはランダム質問までいくのですがそこからがいきません。 何が悪いのでしょうか?
とりあえず私の未完成プログラムを書きますね^^
皆さんの回答をお待ちしております
IE = CREATEOLEOBJ("InternetExplorer.Application")
IE.visible = true
IE.navigate("detail.chiebukuro.yahoo.co.jp/qa/rand.php")
REPEAT
sleep(0.5)
UNTIL !IE.busy AND IE.readystate = 4
ret = IELINK(IE,"役に立った!")
No.3ベストアンサー
- 回答日時:
#2 です。
すいません、1点訂正します。
ちゃんと見ていなかったこちらのミスですが、質問者様のスクリプトは
「ループ内で何度もリンクをクリック」
ではないのですね。
REPEAT~UNTIL の条件は IEのbusyが解けるのと、readystate が 4(つまり "complete")になるのを待っている、この手のスクリプトでは必須の作法(WSHの場合もまったく同様の処理が必要です)なので、ここを10秒とかにする必要はありません。
UWSC のsleepの単位がsecなら、0.5くらいで十分です。
ここはインターネット-ブラウザ間で、HTTPヘッダ&ボディを取得し切るのをクライアント側で待つ間のsleep時間なので、DoS攻撃云々とは関係ありません。
大変失礼しました。
もし「ループ内で何度もリンクをクリックする」のが要件であれば、もう一つ外側のREPEATループが必要になるので、5秒~10秒以上のsleepを入れるとしたら、そちらになります。
前回答でも書いたとおり UWSC は知らないのですが、おそらく定番のデバッグ方法とかあると思います。
例えば、
・ret = IELINK(IE,"役に立った!") の後のretはどうなっているのか?
・ret=0 なら遷移した次ページは何になっているか、innerHTMLなどを表示して確認する
などなどです。
何となくログインの有無かな、と言う感じがしますね。
いずれにせよ、UWSC を知らない私に言えるのは、この程度です。
面白そうではあるので、UWSC インストールして試してみたい気はあるけど、自分のYahoo!IDを垢バンの危機にさらすのもねぇw
質問者様のプログラミングスキルがどの程度なのかわからないのですけど、そこまでリスクと自助努力を払ってでもやりたいのであれば、後は UWSC 専用の掲示板とかも多分ありますよね?
そう言う場で質問したりとかしてみてはどうでしょうか?
(そう言えば、ここもカテ違いですね。「その他(プログラミング)」が適切でしょう)
No.2
- 回答日時:
すいません、UWSCは使った事がないので、回答ではありませんが。
#1 さんも書かれているとおり、これはヤバイですね。
この手のスクリプトのサンプルで、いつも思う事ですが、ループ内のsleep時間が短すぎますね。
sleep(0.5) は短すぎます。
以下は、私自身が体験した事です。
自分は質問者様と似たような事を、何年か前にWSHとバッチファイルを使って、某コミュニティサイトでやったんですが、sleepを短くしていったら、ある日運営からメールが来まして。
「今回は見逃してやるが、次は垢バンじゃ済まさねェーぞ、ゴルァ」
と言うものでした。
(もっとソフトな物言いでしたがw)
つまり、私がやっていた事、そして質問者様がやろうとしている事は、運営側から見たら、明らかに DoS攻撃であり、サイバー犯罪にあたります。
スクリプトによる自演や工作を規約違反として判断されるだけなら垢バンくらいで済む事でしょうが、「サイバー犯罪の被害に遭った」と判断されたら、手が後ろに回る事になってしまいます。
sleep は最低でも3秒以上、さらにランダムに数秒加算するようにして大体5秒から(たまに)10数秒の振り幅ができるようにしてください。
DoS攻撃であるかどうかのチェックはソフトで機械的に行なっているので、「人が操作するのと同じ感じ」を演出するわけです。
(この辺は削除対象かもしれんw)
それと、単なる静的なページにアクセスするのと異なり、WEBアプリケーションの場合は、正規にログインしたのか、スクリプトで OLE経由の InternetExplorer.Application で入ったのか、は、サーバー側で調べればわかりますけどね。
まあ、工作だとわかれば、どのみち垢バンは免れないかもしれませんが、少なくとも、「sleep時間のランダム化」と「最低時間が小さくなりすぎないようにする」、この2点だけでも対処しておけばタイーホは無いかと。
でもスクリプトのバグ等々考えたら。。。後は、your own risk です。
この回答への補足
私がやろうとしてることはかなりやばいとわかっています。しかしやってみたいのです。
sleepは10秒にしましたがやはりうまくいきませんでした
No.1
- 回答日時:
「ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラム」
このプログラムを実行することは、『役に立った』システムへの妨害行為にあたる恐れがあるよ。
すくなくとも、だれかが質問と回答をみて、『あ!知りたかったの、まさにこれ!』とおもって、『ポッチ』っと押すもので、『役に立った』の数でその質問と回答の質の指標が数値として表されるものだから。。。
そういうことは、このサイトじゃなくて、自分で作ったシステムでやってほしいな。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(ブラウザ) IE・edgeで日増しに観られるサイトが減ってくる。 1 2022/10/04 22:40
- Chrome(クローム) グーグルクロムをマイクロソフト・エッジに切り替える方法 2 2022/06/20 10:08
- Windows 10 パソコン初期化の件です 2 2022/06/05 11:05
- JavaScript [Java] Edgeでのアドレスバー非表示について 3 2022/04/20 17:51
- InternetExplorer(IE) 既定のブラウザーを変更した場合、付随して処理が必要なことはありますか? 2 2022/03/25 16:04
- その他(パソコン・周辺機器) EXCELで「WEBオプションの対象ブラウザ」を変更する方法 2 2023/04/12 15:44
- InternetExplorer(IE) Microsoft edgeのIEモードを解除したいのですが。 3 2023/04/09 13:51
- Excel(エクセル) 【エクセルマクロ】既に開いているIEの、サイズや表示位置を変更するには 4 2022/12/01 22:57
- スピーカー・コンポ・ステレオ PC -> USB DAC -> スピーカーアンプ -> パッシブスピーカーでつないで音が出ない 10 2022/10/10 20:08
- JavaScript 正規表現について質問です。条件に合う場合はtrueを返したい 3 2022/10/06 23:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
プログラミングについて。 1つ...
-
画面を強制的に再描画させる方法
-
どなたかこのプログラミングを...
-
テキストボックスの名前に変数...
-
VBA for文が止まらない
-
alarmの使用について
-
Do whileでExitせず、ループの...
-
エディットボックスのテキスト...
-
VBA for i=1 to lastrow
-
UWSCの終了の仕方
-
DOSコマンドのループ内のTIMEコ...
-
Javaでゲーム
-
ループ内での条件処理
-
VBAで3秒だけ時間を止めたい
-
EXCEL VBA ユーザーフォームの...
-
DoEventsが必要な理由について
-
vbscriptでIE自動入力(途中で...
-
vb.netです。2次元配列の要素を...
-
pythonでファイルのコメント行...
-
Java 南京錠
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
VBAで3秒だけ時間を止めたい
-
VBAでの一時停止と再開の方法
-
どなたかこのプログラミングを...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
エクセルの当番表を作っていま...
-
VBA for i=1 to lastrow
-
「偶数・奇数の和」のフローチ...
-
アクティブセルから、A列最終行...
-
DoEventsが必要な理由について
-
vb.netからエクセル関数書き込み
-
GIFアニメをループさせたくない
-
DOSコマンドのループ内のTIMEコ...
-
範囲指定したセルを1つずつ飛...
-
流れ図(フローチャート)が分か...
-
乱数の桁数指定、または範囲指定。
-
テキストボックスの名前に変数...
-
CSVファイルの特定の行だけを読...
-
vb.netです。2次元配列の要素を...
おすすめ情報