Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Probleme beim Seitenqeulltext anzeigen (https://www.delphipraxis.net/146530-probleme-beim-seitenqeulltext-anzeigen.html)

SeeAALi 21. Jan 2010 18:49


Probleme beim Seitenqeulltext anzeigen
 
hi,

ich hab jetzt echt schon viel gegoggelt und auch hier im forum geschaut, aber ich komme nicht weiter..

Ich habe eine Funktion gefunden mit der ich Mittels Indy Daten per POST an eine Webseite schicke.
Das funktioert auch wunderbar.


Nun mchte ich aber den Seitenquelltext laden. Ich habe schon so einige Sachen ausprobiert.
Ich habe es mit TidHTTP.GET probiert, auch ber einen Stream.
Aber alles was ich zurck bekomme ist das : |||
Mein Memo zeigt mir nur diese 3 Zeichen an. Ich bekomme keine Fehlermeldung oder hnliches.
Durch ausprobieren hab ich rausgefunden das ich als Antwort auch HTTP 200 bekomme.
Es msste dann doch alles ok sein, oder nicht.

Luckie 21. Jan 2010 19:00

Re: Probleme beim Seitenqeulltext anzeigen
 
Ohne Quelltext wird das wohl nichts.

SeeAALi 21. Jan 2010 19:11

Re: Probleme beim Seitenqeulltext anzeigen
 
sorry :-D

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
idClient: TIdHTTP;
msData: TMemoryStream;
begin
idClient := TIdHTTP.Create(Application);
msData := TMemoryStream.Create;
try
idClient.Get('http://pwnd.delphipraxis.net/feed/', msData);
msData.Seek(0, soFromBeginning);
Memo1.Lines.LoadFromStream(msData);
finally
idClient.Free;
msData.Free;
end;
end;
damit hab ich es z.B. probiert

toms 21. Jan 2010 19:13

Re: Probleme beim Seitenqeulltext anzeigen
 
Gib mal einen UserAgent an.

patti 21. Jan 2010 19:16

Re: Probleme beim Seitenqeulltext anzeigen
 
Erstmal herzlich willkommen in der DP :dp:

Vielleicht findest du hier etwas: Thread in der DP. Dort werden mehrere Lsungen genannt, u.a. mit URLDownloadToFile aus der Unit URLMon, aber auch mit Hilfe der Indy-Komponenten (allerdings mit einem "Umweg" ber die Festplatte).

mfg

SeeAALi 21. Jan 2010 19:22

Re: Probleme beim Seitenqeulltext anzeigen
 
UserAgents?

ich muss zu geben so weit reichen meine Kenntnisse nun wirklich nicht :-)

ich hab vergessen zu erwhnen, das die seite die ich haben will hinter einem Login liegt.
Das mit dem Login ansich funktioniert auch.

SeeAALi 21. Jan 2010 19:29

Re: Probleme beim Seitenqeulltext anzeigen
 
so habe nun mal was probiert was den umweg ber die platte macht.
Es kommt nun auch mehr raus wie nur |||. Aber das was ich bekomme, ist nur
ein Wust aus den unterschiedlichsten ASCII Zeichen, daraus werd ich nun auch nicht schlau.

toms 21. Jan 2010 19:29

Re: Probleme beim Seitenqeulltext anzeigen
 
Delphi-Quellcode:
idClient := TIdHTTP.Create(Application);
idClient.HandleRedirects := True;
idClient.Request.UserAgent := 'User-agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)';

SeeAALi 21. Jan 2010 19:32

Re: Probleme beim Seitenqeulltext anzeigen
 
ah lol, mir kam das doch so bekannt vor :-D

idHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6'

so hab ich es bei mir, und das mit dem redirect hab ich auch gesetz.

SeeAALi 22. Jan 2010 08:28

Re: Probleme beim Seitenqeulltext anzeigen
 
mal ein kleines push :-D

also bin echt noch nicht weiter gekommen,

liegt es evtl an den request einstellungen ?!

nahpets 22. Jan 2010 11:17

Re: Probleme beim Seitenqeulltext anzeigen
 
Hallo,

hier http://stackoverflow.com/questions/3...l-using-delphi gibt es auch ein Beispiel fr Indy, das msste eigentlich so funktionieren.

SeeAALi 22. Jan 2010 12:09

Re: Probleme beim Seitenqeulltext anzeigen
 
danke nahpets,

das funktioniert im prinzip schon, nur bekomme ich nicht die seite angezeigt die ich haben will...

die seite die ich haben will, ist "hinter" einem login.

www.foobar.com/index.html bekomme ich,
aber www.foobar.com/foobar/index.html will ich haben...

Delphi-Quellcode:

function GetCurrentUserName: string;
const
  cnMaxUserNameLen = 254;
var
  sUserName: string;
  dwUserNameLen: DWORD;
begin
  dwUserNameLen := cnMaxUserNameLen - 1;
  SetLength(sUserName, cnMaxUserNameLen);
  GetUserName(PChar(sUserName), dwUserNameLen);
  SetLength(sUserName, dwUserNameLen);
  Result := sUserName;
end;



function SendPostData(Ahttp: TIdHTTP; const AtoURL: String; const aParams: TStrings): String;
  //Ahttp: Die HTTP Komponente von Indy 8.0 bzw. 9.0
  //AtoURL: An diese URL werden die Informationen gesendet
  //Result: HTML-Ergebnis (Antwort des Scripts)
Var
  lStream: TMemoryStream; //HTML-Result des PHP-Scripts
  lParams: TStringStream;
  I: Integer;

begin
  Result:='';
  if not Assigned(aHttp) then
    exit;
  lStream := TMemoryStream.create;
  lParams := TStringStream.create('');
  try
    AHTTP.Request.ContentType := 'application/x-www-form-urlencoded';

    //Dieser Stream wird letztendlich gesendet
    //Stream mit Werten fllen
     for I:=0 to aParams.Count-1 do
      begin
      if I = aParams.count-1 then
      lParams.WriteString(aParams[I])
      else
      lParams.WriteString(aParams[I] + '&');
      end;
     try
      //Stream an das PHP-Script senden
      AHTTP.Post(AtoURL,lParams,LStream);
    except
      on E: Exception do
       showmessage('Fehler bei der bertragung: ' + E.Message);
    end;
    SetLength(Result,lStream.Size);
    lStream.Position:=0;
    lStream.ReadBuffer(Result[1],lStream.Size);
  finally
    lParams.Free;
    lStream.Free;
  end;
end;

function GetUrlContent(const Url: string): string;
var
  NetHandle: HINTERNET;
  UrlHandle: HINTERNET;
  Buffer: array[0..1024] of Char;
  BytesRead: dWord;
begin
  Result := '';
  NetHandle := InternetOpen('Delphi 5.x', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);

  if Assigned(NetHandle) then
  begin
    UrlHandle := InternetOpenUrl(NetHandle, PChar(Url), nil, 0, INTERNET_FLAG_RELOAD, 0);

    if Assigned(UrlHandle) then
      { UrlHandle valid? Proceed with download }
    begin
      FillChar(Buffer, SizeOf(Buffer), 0);
      repeat
        Result := Result + Buffer;
        FillChar(Buffer, SizeOf(Buffer), 0);
        InternetReadFile(UrlHandle, @Buffer, SizeOf(Buffer), BytesRead);
      until BytesRead = 0;
      InternetCloseHandle(UrlHandle);
    end
    else
      { UrlHandle is not valid. Raise an exception. }
      raise Exception.CreateFmt('Cannot open URL %s', [Url]);

    InternetCloseHandle(NetHandle);
  end
  else
    { NetHandle is not valid. Raise an exception }
    raise Exception.Create('Unable to initialize Wininet');
end;


procedure Tform1.kneipe_todo(todo,comboitem1,comboitem2 : integer;attrib1,attrib2 : string);
var
todo_list : TStringlist;
begin
todo_list := Tstringlist.Create;
case todo of
0 : begin   //Login
      todo_list.add('kneipe='+attrib1);
      todo_list.Add('passwort='+ attrib2);
      todo_list.add('submit_login=Login');
      try
       sendpostdata(IDHTTP1,'/index.html',todo_list);
       memo1.Lines.Add('Login erfolgreich');
      except
       memo1.Lines.Add('Login nicht erfolgreich');
       showmessage('Login nicht erfolgreich');

      end;
    end;
1 : begin // Lager fllen
    case comboitem2 of
      0 : todo_list.add('lager_art=bier');
      1 : todo_list.add('lager_art=schnaps');
      2 : todo_list.add('lager_art=wein');
      3 : todo_list.add('lager_art=longdrinks');
      4 : todo_list.add('lager_art=schampus');
     end;

     case comboitem1 of
      0 : todo_list.Add('wielang=min10');
      1 : todo_list.Add('wielang=min20');
      2 : todo_list.Add('wielang=stunde1');
      3 : todo_list.Add('wielang=stunden2');
      4 : todo_list.Add('wielang=stunden4');
      5 : todo_list.Add('wielang=stunden8');
      6 : todo_list.Add('wielang=stunden12');
     end;

     todo_list.add('submit_bed=Bedienung+schicken');
     try
     //memo1.Lines.Add(todo_list[0] + todo_list[1] + todo_list[2]);
     sendpostdata(IDHTTP1,'/lagerfuellen/index.html',todo_list);
     memo1.Lines.Add('Lager gefllt mit ' + combobox2.Items[comboitem2] + ' fr eine Zeit von ' + combobox1.Items[comboitem1]);
     except
       showmessage('Lager fllen nicht erfolgreich');
     end;
    end;
end;
todo_list.Clear;
todo_list.Free;
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
if (labelededit1.Text <> '') and (labelededit2.Text <> '') and (labelededit3.Text <> '') then
 kneipe_todo(0,0,0,labelededit2.Text,labelededit3.Text)
else
showmessage('ALLE FELDER ausfllen');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
login_var := TStringlist.Create;
lager_var := TStringlist.Create;
idHTTP1.Request.Accept := 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
idHTTP1.Request.AcceptCHarset := 'ISO-8859-1,utf-8;q=0.7,*;q=0.7';
idHTTP1.Request.AcceptEncoding := 'gzip,deflate';
idHTTP1.Request.AcceptLanguage := 'de-de,de;q=0.8,en-us;q=0.5,en;q=0.3';
idHTTP1.Request.Connection := 'keep-alive';
idHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
idHTTP1.Request.Host := 'www.kneipengame.com';
idHTTP1.Request.Referer := 'http://www.kneipengame.com/index.html';
idHTTP1.Request.UserAgent := 'Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6';
labelededit1.Text := GetCurrentUserName;
idHTTP1.CookieManager.AddCookie2( labelededit1.Text+'@kneipengame.com','www.kneipengame.com');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled := true;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
timer1.Enabled := false;
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
kneipe_todo(1,combobox1.ItemIndex,combobox2.ItemIndex,'','');
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
memo1.Text := geturlcontent('http://www.kneipengame.com/lagerfuellen/index.html');
end;

end.
so mal eben meinen ganzen code , falls ich irgendwas sehr umstndlich mache , nicht dran stren oder einen tip geben wie es besser geht :-D

SeeAALi 22. Jan 2010 13:02

Re: Probleme beim Seitenqeulltext anzeigen
 
Code:
[GET /lagerfuellen/ HTTP/1.1  Host: [url]www.kneipengame.com[/url] User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6  Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3  Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7  Keep-Alive: 300  Connection: keep-alive Referer: [url]http://www.kneipengame.com/premiumstart/[/url] Cookie: __utma=262524630.83278421.1257146671.1264154885.1264161360.260; __utmz=262524630.1257490593.18.3.utmcsr=slye.de|utmccn=(referral)|utmcmd=referral|utmcct=/; PHPSESSID=0ebb33a71043434fe1bbbd1451cb38f7; __utmc=262524630; __utmb=262524630.6.10.1264161360    ]
---------------------------
www-http       0 ACK
---------------------------
www-http    1452 [HTTP/1.1 200 OK Date: Fri, 22 Jan 2010 12:52:59 GMT Server: Apache X-Powered-By: PHP/4.4.9  Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Pragma: no-cache Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 4441  Keep-Alive: timeout=1, max=99  Connection: Keep-Alive Content-Type: text/html            \[sF~V ژ%MB $HHlv=^IfE$$BEjVK~<ÞF @ .ƙ  >}_ gyooy ۟z Y }jg_x w{}i ADqhXȚĶuwvxfg_8 eO}kW j dh #A.: 쳿Kbzw?rhd dnIDSBӡzw U FTPtX >%WͨNdㄤ :LJ:} l4HC2`E /  3 , 0$t`n?  $ ZI! y I- $I,4 eVlb e-s{4*U@ N쿁[  ǑA<% 5,%Y /B2MPЬ, JbAS 4Z杝A :zXh >% B4ٓ?zH + ...to be continued
--------------------------
www-http       0 ACK
das ist das was ich bekomme , wenn ich normal ber die seite navigiere....


Code:
[GET /lagerfuellen/index.html HTTP/1.1  Connection: keep-alive Content-Type: application/x-www-form-urlencoded Host: [url]www.kneipengame.com[/url] Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7  Accept-Encoding: gzip,deflate Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3  Referer: [url]http://www.kneipengame.com/lagerfuellen/[/url] User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 GTB6  Cookie: PHPSESSID=653fd05d5228eb7f29ce39aaca8abdd8    ]
--------------------------------------
www-http       0 ACK
--------------------------------------
www-http    1452 [HTTP/1.1 200 OK Date: Fri, 22 Jan 2010 12:56:56 GMT Server: Apache X-Powered-By: PHP/4.4.9  Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0  Pragma: no-cache Vary: Accept-Encoding Content-Encoding: gzip Content-Length: 4443  Keep-Alive: timeout=1, max=100  Connection: Keep-Alive Content-Type: text/html            \[sF~V ژ%MB $HHlv=^IfE$$BEjVK~<ÞF @ .ƙ  >}_ gyooy ۟z Y }jg_x w{}i ADqhXȚĶuwvxfg_8 eO}kW j dh #A.: 쳿Kbzw?rhd dnIDSBӡzw U FTPtX >%WͨNdㄤ :LJ:} l4HC2`E /  3 , 0$t`n?  $ ZI! y I- $I,4 eVlb e-s{4*U@ N쿁[  ǑA<% 5,%Y /B2MPЬ, JbAS ... to be continued
www-http       0 ACK
und das bekomme ich zurck wenn ich mit meinem tool navigiere.....

also irgendwas bekomme ich zurck , nur nicht das was ich gebrauchen kann :-D

nahpets 22. Jan 2010 13:16

Re: Probleme beim Seitenqeulltext anzeigen
 
Hallo,

Du bekommst da was mit gzip gepacktes, dass kannst Du nicht (vernnftig) in einem Memo anzeigen, das musst Du als Datei speichern und entpacken. Danach sollte Dir der "wahre" Inhalt offenbart werden ;-)

SeeAALi 22. Jan 2010 14:07

Re: Probleme beim Seitenqeulltext anzeigen
 
muss ich den umweg ber eine datei gehen ?!

und evtl scvhon mal ein paar links , das ich evtl nicht ganz soviel googlen muss :-D

SeeAALi 22. Jan 2010 14:14

Re: Probleme beim Seitenqeulltext anzeigen
 
ist ja wirklich was gezipptes, mensch was es nicht alles fr sachen gibt :-)
hab mir den kram jetzt mal in eine datei geladen und dann mal so angeschaut, und siehe da es ist genau das was ich haben will :-D

ok dann such ich mal nach zip und unzip fr delphi :-)


ich danke euch :-)

damit wre dieser thread fr beantwortet erklrt

nahpets 22. Jan 2010 14:27

Re: Probleme beim Seitenqeulltext anzeigen
 
Hallo,
Zitat:

Zitat von SeeAALi
ist ja wirklich was gezipptes, mensch was es nicht alles fr sachen gibt :-)
hab mir den kram jetzt mal in eine datei geladen und dann mal so angeschaut, und siehe da es ist genau das was ich haben will :-D

ok dann such ich mal nach zip und unzip fr delphi :-)


ich danke euch :-)

damit wre dieser thread fr beantwortet erklrt

schau mal hier bei ZipMaster.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:44 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz