[gelöst] QHttp Suchergebnisse abfragen und auswerten

Alles rund um die Programmierung mit Qt
Antworten
mephistho
Beiträge: 58
Registriert: 14. September 2006 17:47

[gelöst] QHttp Suchergebnisse abfragen und auswerten

Beitrag von mephistho »

Hi,

ich häng grad bei einer QHttp-Sache. Hab ein wenig in der Suche rumgeschaut, aber nix passendes gefunden.

Konkrete Dateien (www.domain.de/datei.en) herunterladen klappt einwandfrei.

Aber wie siehts mit Ergebnissen von Suchabfragen aus? Die Browsereingabe "http://www.imdb.com/find?s=all&q=Transformers" liefert mir ja z.B. die Suchergebnisse zu dem Film. Die Seite hätte ich nu gern in meinem Programm. Nicht zum Anzeigen, sondern nur zum Parsen. Ich möchte mir da dann die Links zu den unterschiedlichen Suchergebnissen raussuchen und die dann anzeigen. Dann soll man sich eines der Ergebnisse aussuchen und die Daten der dann gelieferten Seite sollen für eine kleine eigene DVD-Datenbank abgespeichert werden - womit wir beim nächsten Problem wären:
Die Filminfos werden bei imdb.com nicht über exakte Pfade zu Dateien aufgerufen, sondern über Verzeichnisangaben (z.B. http://www.imdb.com/title/tt0418279/ für den aktuellen Transformers Film)

Hat jemand ne Idee, wie ich das realisieren könnte?

Dank & Gruß
meph
Zuletzt geändert von mephistho am 21. Januar 2008 19:58, insgesamt 1-mal geändert.
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Du sendest mit QHttp die Anfrage, lädst damit den gesamten Quellcode der Seite in nen QString und parsest diesen. Wo ist das Problem?
mephistho
Beiträge: 58
Registriert: 14. September 2006 17:47

Beitrag von mephistho »

So dachte ich mir das auch. Aber es kommt nix zurück, wenn ich die Anfrage mit http->get() abschicke?!
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Wie wird nichts zurückgeliefert? Verwendest du QHttp::get() mit oder ohne Device? Sind die Signale connected? Gibt es eine Fehlermeldung? Hast du dir das HTTP-Example schon mal angesehen, auf das die Doku verweist?
mephistho
Beiträge: 58
Registriert: 14. September 2006 17:47

Beitrag von mephistho »

Sorry für die Informationsarmut.

Ich hab mich an dem Doku-HTTP-Beispiel orientiert. Ich verwende get also mit QFile als device. Habs halt für meine Anwendung angepasst, z.B. ProcessBar und statusLabel rausgenommen...Und darüber klappt der Download von konkreten Dateien ja auch ohne Probleme.
Wenn ich z.B. http://www.imdb.com/find übergebe bekomme ich auch die Suchseite - logisch...
Nur sobald ich die Argumente übergebe kommt nichts an.

Fehlermeldungen gibt es keine. Signals connected wie im Beispiel...

Wahrscheinlich müsste ich mir mal die Pakete anschauen, die hin- und hergehen, richtig? Mit Wireshark z.B....

Ich verstehe euch aber richtig, dass es generell kein Problem ist, dort mit Übergabeparametern zu arbeiten, ja?

Gruß
meph
upsala
Beiträge: 3946
Registriert: 5. Februar 2006 20:52
Wohnort: Landshut
Kontaktdaten:

Beitrag von upsala »

Warum sollte es? Die Übergabeparameter sind ja ein ganz normaler Bestandteil des Links...
mephistho
Beiträge: 58
Registriert: 14. September 2006 17:47

Beitrag von mephistho »

Ja, davon bin ich auch ausgegangen.

Der Aufruf von Filmen über das Verzeichnis (also http://www.imdb.com/title/tt0418279/ für Transformers) funktioniert.

Die Suche hingegen klappt weiterhin nicht. Ich bekomme dann nur den Quelltext der "Suchseite", als hätte ich nur http://www.imdb.com/find eingegeben.

Ich steh aufm Schlauch und komm nicht runter.

Ich kann z.B. auch nicht Seiten vom Forum hier downloaden.
Wenn ich http://qtforum.de/forum/viewforum.php?f=1 angebe, bekomme ich die Seite, die mir sagt "Das ausgewählte Forum existiert nicht."
Er nimmt also nur die Eingabe bis zum Fragezeichen.

Muss ich da vielleicht irgendwas davor setzen, damit er das richtig verarbeitet?

Nochmals Dank
meph
mephistho
Beiträge: 58
Registriert: 14. September 2006 17:47

Beitrag von mephistho »

Ich habs Problem jetzt gefunden.

Es lag daran, dass die Jungs im Qt-Example

"httpGetId = http->get(url.path(), file);"

verwenden und dieses url.path() nur den Part bis zum Fragezeichen zurückgegeben hat.

Habs mit Wireshark entdeckt und kanns nu umgehen.

Also allen noch einen schönen Abend....
PeterLustig
Beiträge: 386
Registriert: 21. November 2007 20:07

Beitrag von PeterLustig »

Natürlich gibt path nur bis zum Fragezeichen zurück, denn was danach kommt gehört auch nicht mehr zum Pfad..
Antworten