websites auswerten und mit ihnen interagieren

Status
Für weitere Antworten geschlossen.
Na das ich damit so viel Aufruhr errege hät ich mir nicht gedacht.

Skyte schrieb:
Ich frage mich, was der Threadersteller damit wohl vor hat.
Bomben bauen, was sonst? Ich hab mir nur gedacht das die Recht nützlich wären beim Analysieren von Dateien, bzw. beim schreiben und lesen von Konfigurationsdateien und ähnlichem. Aber ich will keine Implementierung schreiben.

Und mit Büchern hab ich schlechte erfahrungen gemacht. Hab mir mal ein C++ Buch geliehen in dem 10 Seiten lang Variablen erklert wurde und Objektorientierung war dan in einer erledigt. Bei einem Onlinetoturial such ich mir dann halt ein anderes aber ich kauf mir nicht hundert Bücher. Auserdem wenn dasso komplex ist das es ein Buch erfordert geht die Kosten/Nutzen Rechnung für mich nich ganz auf, denn dann benutze ich jetzt und in Zukunft lieber HTML-/XML-Parser.

Ich bin übrigens immer noch auf der Suche nach einem geeigneten HTML-Parser.

mfg
obi--wan
 
Auserdem wenn dasso komplex ist das es ein Buch erfordert

Quatsch, das ist nicht viel.
Es ist nur eine wilde Verkettung irgendwelcher Zeichen, die nach einem Suchausdruck suchen sollen und auch nicht viel mehr als das von mir genannte "/^.$/".
Z.B. sagen wir du suchst nach einem Zeilenumbruch, ich beachte jetzt mal "<br>", "<br/>" und "<br />", dann ist ein passender RegEx dafuer: "/<br ?\\/?>/i"
Das "i" hinter dem Slash sagt nur, dass es nicht case sensitive sein soll, passt also auch auf grossgeschriebene Tags.
Da der Slash bereits fuer die Begrenzung benutzt wird, muss man ihn escapen (muss man auch immer dann machen, wenn es in RegEx bereits eine Bedeutung hat (zB bei Fragezeichen, Plus, Stern, etc.)). Da Backslash auch das Escapezeichen fuer Strings ist, muss man den Backslash natuerlich doppelt schreiben, wie immer in einem String, wo ein Backslash drin sein soll.
Und das Fragezeichen sagt, dass das Zeichen davor vorhanden sein kann, aber nicht muss (Leerzeichen und Slash sind in dem Beispiel also optional).
(Eine Liste der ganzen Zeichen gibts halt zB bei Wikipedia).
 
Letzte Warnung, voodoo44 halte dich etwas zurück und Skyte, lass dich nicht ärgern ;)
 
hey ich denke auch das regexp's das beste sein werden. Alternativ kannst du sicher auch den Parser nehmen den Zerd vorgeschlagen hat.
Falls du noch auf der Suche nach einem Leistungsstarken Framework bist schau dir einfach mal Qt an. Ist sehr umfangreich und sehr gut dokumentiert. Der englischen Sprache solltest du aber mächtig seien.
Ansonsten kann man auch Perl nutzen, ebenfalls gut Dokumentiert und in C++ einbinden.
gruß der f.o.g.
 
Die HTML Reader C++ Class Library ist leider Eventgesteuert, mit Events hab ich noch nie gearbeitet klingt aber recht einfach. Jedoch scheint es deutlich aufwändiger zusein als mit einer anderen auf die man mit DOM oder xPath zugreifen kann. Ich werd mich da noch ein wenig umschauen.

Nun kommen wir zum zweiten Punkt: Mit Webseiten interagieren. Wie kann ich mit Webseiten (PHP, JavaScript) interagieren? Nehmen wir zum beispiel einmal das Posten eines Beitrages im Forum an.

mfg
obi--wan
 
Dazu würde ich cURL benutzen, bzw. libcURL
Auf der Seite kannst du eigentlich alles darüber erfahren. Solltest natürlich grob wissen, wie Browser und Server miteinander kommunizieren ;)

Gruß
Broken Sword
 
Solltest natürlich grob wissen, wie Browser und Server miteinander kommunizieren
Naja, nicht wirklich, das Thema hat mich bis jetzt nicht wirklich interessiert. Gibts vieleicht wenigstens dazu ein Tutorial?

mfg
zigarrre

Hab mir das jetzt mal ein bischen angesehen. Nun ist die Frage ob ich libcurl oder curlpp benutzen sollte.

Eigentlich wäre ich ja eher für curlpp da es objektorientiert ist, aber ich find keine brauchbaren Anleitungen/Tutorials und aus den Beispielen auf der Website werde ich nicht schlau und der Link zur API funktioniert auch nicht.

Da ich für curl ein gutes Tuturial zu dem Thema gefunden habe, hätte ich angefangen zu programmieren, aber irgendwie funktioniert da was nicht. Bei diesem Code:
Code:
#include <iostream>
#include <curl/curl.h>

using namespace std;

int main() {

    curl_global_init(CURL_GLOBAL_ALL);

    return 0;
}
bekomme ich folgende Fehlermeldung:
Code:
8|undefined reference to `_imp__curl_global_init'|
Das kann aber nicht an meinem Code liegen da das in fast allen Beispielen so verwendet wird. Ich verwende MinGW (GCC v 3.4.5) mit Codeblocks als IDE und libcurl v 7.21.0.

Hoffe ihr könnt mir helfen!

mfg
obi--wan
 
Ich kenn mich mit codeblocks nicht so sehr gut aus, aber du linkst scheinbar die library nicht zu deinem Projekt.

Unter den projekteigenschaften muss es irgendwo linkeroptionen geben, bei denen du dann die entsprechende libcurl.a (oder ähnlich) angeben musst.
 
Ich linke mit der "libcurl.a", das hab ich nur vergessen im vorigen Post zu erwähnen.
 
Status
Für weitere Antworten geschlossen.

Beliebte Schlagwörter

Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden.
Du solltest ein Upgrade durchführen oder einen alternativen Browser verwenden.

Zurück
Oben Unten