myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   [C++] Quelltext einer Internetseite auslesen (https://mygully.com/showthread.php?t=2061561)

Your_Conscience 14.06.10 06:26

[C++] Quelltext einer Internetseite auslesen
 
Hallo!
Ich versuche seit einer Weile (vergebens) den Quelltext einer internetseite zu bekommen.
Genutzt habe ich die IdHTTP-Komponente, was auch alles wunderbar funktioniert hat - bis ich den Quelltext einer Seite aufrufen wollte, bei der man sich zuvor einloggen muss.

Ich würde mich sehr über ein paar hilfreiche Antworten freuen :T


mfg

smdata2 14.06.10 17:19

wenn du dich dafür vorher anmelden musst dann wirst du den quelltext auch so ohne weiteres nicht auslesen können ... da der login entweder serverseitig durch php, perl etc. oder direkt durch den apache geprüft wird sollte das so ziemlich unmöglich sein.

klärt mich/uns auf wenn es doch geht ... immer vorausgesetzt die seite hat keine sicherheitslücke über die das möglicherweise gehen könnte :D

gruss
data

urga 14.06.10 18:20

Zitat:

ziemlich unmöglich
aber keinesfalls. alles ist möglich.
welches c++ ist es denn unter welcher plattform?
vc++ windows, g++ linux ... ?

und um welche seite handelt es sich?

.Ash 14.06.10 21:16

idhttp hört ich nach RAD Studio (embacadero, borland) an.
du musst dich halt per idhttp->post einloggen und dann den quelltext ziehen

Your_Conscience 14.06.10 21:25

Ich nutze Embarcadero Rad Studio 2010 auf Windos 7 x64.
Das Kompilierte Programm sollte aber eigentlich auch auf älteren Windows-Versionen laufen.

Ich weiß, dass man mit Delphi den Quelltext direkt aus dem WebBrowser holen kann, auch wenn man sich dort einloggen muss. Mit dem Borland C++ Builder 6 ging dies auch noch, mit der jetzigen IDE bekomme ich es nicht mehr hin.

Über eine Möglichkeit in VC++ würde ich mich aber auch freuen :)


Es soll für keine spezielle Seite sein, es sollte eigentlich allgemein funktionieren.

@.Ash
Hättest du vielleicht einen kleinen Beispielcode oder ähnliches?

urga 15.06.10 18:29

prinzipell, also pseudocode:
Code:

httpRequest objekt o erzeugen
o->method = "POST";
o->url = "...";
o->post_parameters = "uid=urga&passwort=urgas%20passwort";
o->send_request();

dann o->answer->header nach dem cookie durchsuchen, das die eingeloggte session repräsentiert.

dann:
o->method = "GET";
o->url = ".........";
o->header->setCookie (cookie_aus_der_vorangegangenen_antwort);
o->send_request();
cout << o->answer;

für vc c++ schau' mal hier:
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]
[Link nur für registrierte und freigeschaltete Mitglieder sichtbar. Jetzt registrieren...]

.Ash 27.08.10 15:00

-- auf Nachfrage entfernt --
selbst ist der mann 0_O

Your_Conscience 30.08.10 20:08

Zitat:

Zitat von .Ash (Beitrag 21174946)
Code:

/*  ####Optional####
client->Request->Referer="www.hoa.mi";
client->Request->UserAgent = "Mozilla ... NOT";
client->Request->Accept="text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
client->Request->AcceptLanguage ="de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4";
client->Request->Connection= "Keep-Alive";
*/

TStringList* DataString = new TStringList;
DataString->Add("Hier den Post-String rein");
Memo1->Text=client->Post("hier die adresse der login seite",DataString);
delete DataString;


Funktioniert zwar wunderbar, aber wenn man sich authentifizieren muss, zeigt er entweder keinen Quelltext an, oder nur einen Teil. :confused:

.Ash 01.09.10 17:58

-- auf Nachfrage entfernt --
selbst ist der mann 0_O

Your_Conscience 01.09.10 19:33

Zitat:

Zitat von .Ash (Beitrag 21198814)
mit webscarab biste zurecht gekommen?

Ehrlich gesagt nicht so wirklich.

.Ash 03.09.10 10:14

-- auf Nachfrage entfernt --
selbst ist der mann 0_O

Your_Conscience 04.09.10 12:34

AAAAAAAAAAAAAAAAAHHHHHHH! es funzt!!! ^^
Ich danke dir :T
*sich vor dir verbeug*


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

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.