Aspx bot logujący

0

Witam pokrótce opiszę problem i o co mi chodzi.

Mam przykładowo kilka stron napisanych w aspx, na których muszę codziennie odznaczać swoją obecność. Chciałem napisać sobie takiego bota, który pobierze z listy stronkę login i hasło. Następnie zaloguje się na stronkę i prześle do serwera parametr informujący o mojej wizycie.

Nie wymagam napisania kodu tylko jakiejś podpowiedzi jak to ugryźć i jak się za to zabrać? W aspx to zrobić czy może jest jakiś plugin do przeglądarki z którego poziomu będę mógł coś takiego stworzyć. I jeszcze tylko pytanko jak mogę odczytać co jest przesyłane do serwera w aspx po kliknięciu w button? W źródle strony to znajdę? Wiem, że w html jest post i get, ale tutaj to chyba nie ma miejsca?

0

Takie odświeżenie sobie zrobię, bo nikt nie chce się skusic pomóc. Widziałem kilka przykładów takich skryptów logowania w curl. Znalazłem też sposób zrealizowanie tego za pomocą greasemonkey.

[code]
// ==UserScript==
// @id 1
// @name Skrypcik
// @version 1.0
// @namespace
// @Author
// @description
// @include about:addons
// @run-at window-load

  • @include http:*przykladowastrona.pl/Default.aspx
    // ==/UserScript==

var login = 'bubzon';
var i = 1;
var haslo = 'test';

document.getElementById('UserID').value=login+i;
document.getElementById('txtPassWD').value=haslo;
document.getElementById('LoginPanel1_btnLogin').click();

[/code]

I w zasadzie po otwarciu strony ten skrypt mnie loguje, ale schody zaczynają się później. W dalszej części chcę przejść na podstronę

[code]
window.location.replace('http://przykladowastrona.pl/podstrona.aspx');
[/code]

Jeśli wstawię ten element bezpośrednio pod poprzednim kodem to nie zdąży się zalogować tylko wskoczy na podstronę. Próbowałem dać delay lecz można go wstawić tylko w nagłówek więc opóźni cały skrypt. Znalazłem też coś takiego jak setTimeout, ale nie działa, albo źle go używam.

Później pomyślałem, że z tym timeout to taki prymitywny pomysł i chciałem zrealizować sprawdzanie logowania w jakimś ifie. I teraz na stronie po zalogowaniu zostaje wyświetlony mój nick w znacznikach .

Jak to wczytac do greasemonkey abym mógł porównac w ifie z moim loginem:

[code]
bubzon
<!--
[/code]

W sumie ten if też może się zacząć wykonywać zanim się zaloguję.
Albo może ktoś ma jakiś inny pomysł. Googlowałem trochę czasu, znalazłem mnóstwo przykładów, ale implementacja coś mi nie wychodzi. Cienki jestem w te klocki :(

0

jak dasz location.replace to zmieni się strona i skrypt się przestanie w ogóle wykonywać, ale strona się przeładuje i skrypt uruchomi się od początku
możesz więc sprawdzać aktualny adres i podejmować akcje w zależności od niego albo w inny sposób wykryć na jakim jesteś etapie
po pierwsze - skorzystaj z jQuery - będzie Ci dużo prościej
po drugie - przejrzyj gotowe skrypty innych użytkowników

0

Loguję się na stronę, przechodzi na podstronę i zaznacza obecność. Teraz chciał bym sprawdzić czy ta obecność została odhaczona. Jedynym elementem, który ulega zmianie podczas odznaczania jest to:

<div id="ctl00_ContentPlaceHolder1_dlsCalendar_ctl23_divStamp" class="btnSpecial "><a href="javascript:fnValidateForm(12, 1, '737');"></a></div>

Po odznaczeniu obecności dostaję takie coś :

<div id="ctl00_ContentPlaceHolder1_dlsCalendar_ctl23_divStamp" class="stampOk"></div>

Więc wystarczy sprawdzić czy występuje div o klasie btnSpecial. Ktoś powie jak to zrobić?

Za pomocą tego coś zdziałam?

var obecnosc = document.getElementsByTagName('div');

 

I jakoś tutaj w ifie czy class jest różne <> od btnSpecial. Da się tak?

0

if(document.getElementById('ctl00_ContentPlaceHolder1_dlsCalendar_ctl23_divStamp').className != 'btnSpecial')

albo:

if(document.getElementsByClassName('btnSpecial').length > 0)

w jQuery:

if($('div.btnSpecial').length)

1 użytkowników online, w tym zalogowanych: 0, gości: 1