アプリ版:「スタンプのみでお礼する」機能のリリースについて

カテ違い失礼しました。なにぶん始めてなもので・・・って言い訳にならないですよね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,"役に立った!")

A 回答 (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 専用の掲示板とかも多分ありますよね?
そう言う場で質問したりとかしてみてはどうでしょうか?

(そう言えば、ここもカテ違いですね。「その他(プログラミング)」が適切でしょう)
    • good
    • 0
この回答へのお礼

UWSC 掲示板で質問をしました
またカテゴリを変えて質問します

お礼日時:2011/06/05 13:03

すいません、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秒にしましたがやはりうまくいきませんでした

補足日時:2011/06/05 08:25
    • good
    • 0

「ランダム質問をクリックしてから”役に立った” (下URL参照)をクリックするプログラム」


このプログラムを実行することは、『役に立った』システムへの妨害行為にあたる恐れがあるよ。

すくなくとも、だれかが質問と回答をみて、『あ!知りたかったの、まさにこれ!』とおもって、『ポッチ』っと押すもので、『役に立った』の数でその質問と回答の質の指標が数値として表されるものだから。。。

そういうことは、このサイトじゃなくて、自分で作ったシステムでやってほしいな。
    • good
    • 0

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