String filtern

betaros

betaros

Computerspezi
Moin,

ich habe mich mal wieder rangesetzt und versucht ein bisschen C++ zu machen. In meinem Programm möchte ich eine Website laden und dann einen bestimmten Bereich auslesen. Wie ich den Quelltext der Webseite bekomme weiß ich:

Code:
string contents;

void get_source(string site){
    CURL* curl = curl_easy_init();
    if(curl)
        {
            curl_easy_setopt(curl,CURLOPT_URL, site.c_str());
            CURLcode res = curl_easy_perform(curl);
            curl_easy_cleanup(curl);
            if (res == 0)
		cout << contents << endl;
        }
    return 0;
}

Jetzt möchte ich aber, dass er aus 'contents' den Text zwischen z.B. <a> und </a> ausliest. Wie bekomme ich das hin?

mfg
betaros
 
Die frage ist wie weit du in die Materie eindringen willst, bzw was genau du machen willst. Eine Möglichkeit wäre natürlich den anfangs und endstring zu suchen und dann den substring zwischen den treffern zu kopieren und den Rest wegzuwerfen, aber das kann umständlich werden, wenn du zb verschachtelte tags hast, aber es ist sicher machbar.

Für sowas wird pcre auch immer wieder gern verwendet.

Allerdings wenn du da wirklich html hast wär vermutlich ein xml/dom parser das was du suchst.

Ich will pcre/xml/dom gar nicht näher erläutern, weil du im internet viel bessere Erklärungen findest.
 
Ich sehe das ähnlich, möchte aber nochmal etwas verdeutlichen: Solltest Du selten so einen String auslesen wollen in deinem Programm, dann reicht es locker den Substring auszuschneiden mit Hilfe der Suchfunktionen. Solltest Du aber wirklich oft Teile aus dem Quelltext auslesen wollen und musst Du dies oft selbstständig im Code tun, dann solltest Du einen Parser verwenden.
 

Ähnliche Themen

String auf Konsole ausgeben

Problem mit Texteingabe

CentOS 6.3 RADIUS - Keine Verbindung möglich

dynamische Speicherreservierung

http request Download mit php5_curl

Zurück
Oben