Avatar billede curlingcity Nybegynder
24. september 2003 - 13:06 Der er 3 kommentarer og
1 løsning

HTTP - login på hjemmeside, navigere rundt og parse kildekoden

Det er nogle år siden jeg har "leget" seriøst med Delphi, men har lige fået er behov hvor jeg via et klient program kan overvåge aktiviterer på min hjemmeside (har delphi 7). Eftersom jeg har blokeret for anden adgang til den en port 80, er jeg nødt til at logge mig (med mit admin ident) og navigere rundt til forskellige sider og udtrække data som jeg kan bruger til iværksætte diverse alarme.

Jeg har forsøgt mig med både Indy's idHTTP og WebBrowser1, men går hver gang fast i at komme forbi login billedet.

Er der nogen der har noget basic kode der kan browse, form poste og parse kildekode (streams -> string eller parse streams !!) gerne med cookie support ?

Jeg har læst en del indlæg herinde, men sidder alligevel uhjælpeligt fast ... ikke sjovt at være n00b igen :)
Avatar billede stoney Nybegynder
24. september 2003 - 13:32 #1
Dette eks. bruger TWebbrowser

http://www.swissdelphicenter.com/en/showcode.php?id=564

Stoney
Avatar billede curlingcity Nybegynder
24. september 2003 - 13:56 #2
Ja, har skam læst den, men jeg skal bruge session info fra en cookie for at kunne logge på: ?sesid=<fra cookie> og så er det POST data jeg skal sende ikke GET. Bruger php på serveren og checker for om det kommer fra $_POST, netop for at undgå url-ripping. Desuden tror jeg efterhånden ikke at jeg kan bruge WebBrowser1 for jeg bruger scripts til at fjerne mulighed for at se kildekode, hvilket virker fin i IE, men ikke i f.eks. opera. Har først at hente kildekoden fra webbrowser1, men på sider der er beskyttede kommer der ingen kildekode.
Avatar billede curlingcity Nybegynder
24. september 2003 - 14:16 #3
Ahh .. glemte også at sige at loginformen findes i en frame .. prøve nemlig at bruge en teknik du tidligere har beskrevet stoney:
TheForm := (WebBrowser1.Document as IHTMLDocument2).all.item('login', 0);
og jeg får en fejl fordi den ikke kan finde formen. Skal vist til at studere DOM for at komme videre.
Avatar billede curlingcity Nybegynder
25. september 2003 - 11:07 #4
Jeg har fundet løsningen med twebbrowser. Man skal godt nok være langhåret DOM specialist, og en god portion DHTML erfaring hjælper.

Her er de 3 linier der får mig igennem login dialogen:

    Webbrowser1.OleObject.Document.Frames.item(1).Document.Forms.item(2).item(0).Value := brugernavn.Text;
    Webbrowser1.OleObject.Document.Frames.item(1).Document.Forms.item(2).item(1).Value := kodeord.Text;
    WebBrowser1.OleObject.Document.Frames.item(1).Document.Forms.item(2).item(2).click;

Det største problem er at holde styr på hvornår twebbrowser er færdig med at hente den frame man skal bruge, det tog mig lidt tid at finde ud af at når jeg blev redirected skal man igennem 2 fulde dokumenthentninger så der er lidt processtyring. Men nu virker det.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester