0

私は、セレンを使用して Web サイトでの入札を自動化するプログラムを Python で作成しています。ウェブサイトの入札セクションでは、賞品と「残り時間」のカウントダウンを一覧表示することがよくあります。小賞と大賞があります。賞金が大きいほど、参加したい人が増えるため、勝つためにはより多くのチケットが必要になります (これは、確率と参加するチケットの数に基づいています)。

小さな賞品については、タイマーが切れる前に入札できる十分なチケットがあります。しかし、大きな賞品の場合、チケットを獲得する率は、小さな賞品に入札するのに十分ではなく、タイマーがゼロに近づくと突然大きな賞品に入札します. 同じ賞品に複数回入札できるので、大きな賞品に段階的に入札し、その賞品の「目標」チケット数に達するまでチケットの一部のみを使用することにしました.

問題は、継続的に実行されている 1 つの機能があり、小さな賞品に入札している間 (入札ごとにページが更新され、すべての入札が同じページに表示されます)、プログラムに何らかのタイマーを設定したいということです。その賞品に入札したいチケットの量に達するまで、たとえば2分ごとに大きな賞品に入札するように指示します. では、大きな賞品を受け取るには、セレンを使用して新しいブラウザ ウィンドウを開く必要がありますか? それとも、大きな賞品の入札を小さな賞品の入札に合わせて、同じブラウザ ウィンドウを使用する必要がありますか?

「単純化」の目的で 2 番目の入札を実行できるようにしたいのですが、小さな賞品へのややランダムな入札で、大きな賞品の時限入札にどのように適合するかわかりません。

ありがとう。

4

1 に答える 1

0

入札間隔/残り時間を設定する C# の小さなコード スニペットを次に示します。

時間/間隔が完了すると、イベント*LargePrize_Tick*が発生し、チケットがなくなるまで高額賞金に入札します。

static void Timer_Ticking(int Interval_in_Secs)
    {
        Timer timer = new Timer(); 
        timer.Interval = (1000) * (1);              // Timer will tick evert second
        timer.Enabled = true;                       // Enable the timer
        timer.Start();                              // Start the timer
        timer.Interval = Interval_in_Secs*1000;    //Equvivalent in milliseconds.
        System.Threading.Thread.Sleep(TimeSpan.FromSeconds(Interval_in_Secs));
        timer.Elapsed += new ElapsedEventHandler(LargePrize_Tick);
    }

    static void LargePrize_Tick(object sender, EventArgs e)
    {
        Console.WriteLine("Done with interval ");

        //Open Browsers
        //Bid for Prize till ticket is Available
        //Close browser after bidding.

    }

これがお役に立てば幸いです....最高です:)

于 2012-11-22T09:15:42.180 に答える