- ベストアンサー
UWSCでランダム質問に役立ったプログラム作成方法
- UWSCというマクロツールを使用して、ランダム質問をクリックしてから「役に立った」ボタンをクリックするプログラムを作成したいですが、うまくいきません。問題の箇所を特定する方法がありますか?
- 作成したプログラムでは、ランダム質問まで進むことができますが、「役に立った」ボタンをクリックする部分でエラーが発生します。原因を教えていただけますか?
- IEオブジェクトを使用して、UWSCでランダム質問に役立ったプログラムを作成しようとしていますが、うまく動作しません。問題の解決方法を教えてください。
- みんなの回答 (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 専用の掲示板とかも多分ありますよね? そう言う場で質問したりとかしてみてはどうでしょうか? (そう言えば、ここもカテ違いですね。「その他(プログラミング)」が適切でしょう)
その他の回答 (2)
- utakataXEX
- ベストアンサー率69% (711/1018)
すいません、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秒にしましたがやはりうまくいきませんでした
- dscripty
- ベストアンサー率51% (166/325)
「ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラム」 このプログラムを実行することは、『役に立った』システムへの妨害行為にあたる恐れがあるよ。 すくなくとも、だれかが質問と回答をみて、『あ!知りたかったの、まさにこれ!』とおもって、『ポッチ』っと押すもので、『役に立った』の数でその質問と回答の質の指標が数値として表されるものだから。。。 そういうことは、このサイトじゃなくて、自分で作ったシステムでやってほしいな。
お礼
UWSC 掲示板で質問をしました またカテゴリを変えて質問します