[gelöst] PHP-Seite auslesen, speichern und bearbeiten?
Verfasst: 7. Februar 2006 03:08
Hallo,
habe ein kleines Problem. Wollte ein kleines Tool schreiben, dass diverse URLs eines Anbieters in unterschiedlichen Ländern ansurft, die Seite für einen entsprechenden Artikel lokal abspeichert, so dass ich aus dem HTML-Code die Preise auslesen kann und so den günstigsten raussuchen kann. Folgenden Code habe ich:
Erstmal scheint er, nicht wie gewünscht, für jeden Source-Code ein einzelnes File anzulegen (Anlegen schon, aber nicht füllen), sondern füllt das letzte File mit den 3 Source-Codes und auch erst, wenn er zum Hauptfenster zurückgekehrt ist. Wenn ich das Schritt für Schritt mache, bleibt es nach dem Rausspringen aus den Funktionen leer. Auch scheint er das SIGNAL requestFinished garnicht zu bekommen. Springt im Debugger nicht rein und habe da sonst auch mal http.abort(); reingeschrieben, so dass er die HTML-Seiten dann ja nicht mehr weiterladen würde.
Im Moment läuft es so: Ich tippe sozusagen auf SUBMIT und auf der Platte füllt sich das letzte File langsam mit Inhalt. Ich bräuchte natürlich auch irgendwie einen Handler, der so lange mit der Weiterführung wartet, bis ich weiss, dass jedes File fertig heruntergeladen wurde bzw. ein Timeout gekommen wäre. Muss nicht perfekt sein, ist ja mehr zum Eigengebrauch. Kann mir jemand einen Tipp geben? (QT 3.2.3)
habe ein kleines Problem. Wollte ein kleines Tool schreiben, dass diverse URLs eines Anbieters in unterschiedlichen Ländern ansurft, die Seite für einen entsprechenden Artikel lokal abspeichert, so dass ich aus dem HTML-Code die Preise auslesen kann und so den günstigsten raussuchen kann. Folgenden Code habe ich:
Code: Alles auswählen
void MainWindow::submitSlot()
{
QString nr, fileName, iString;
QString url[3];
connect(&http, SIGNAL(requestFinished(int, bool)), this, SLOT(requestFinishedSlot(int, bool)));
nr=this->artNrLineEdit->text();
nr="/xxxx.php?product_code="+nr;
url[0]="www.xxxx.net";
url[1]="www.xxxx.com";
url[2]="www.xxxx.nl";
for (int i=0; i<=2; i++)
{
fileName="source"+iString.setNum(i)+".txt";
getSource(url[i], fileName, nr);
}
}
void MainWindow::getSource( QString url, QString fileN, QString nrString )
{
file.setName(fileN);
if (!file.open(IO_WriteOnly ))
{
return;
}
int id1 = http.setHost(url, 80);
int id2 = http.get(nrString, &file);
file.close();
}
void MainWindow::requestFinishedSlot( int id, bool error )
{
http.closeConnection();
//http.abort();
}
Im Moment läuft es so: Ich tippe sozusagen auf SUBMIT und auf der Platte füllt sich das letzte File langsam mit Inhalt. Ich bräuchte natürlich auch irgendwie einen Handler, der so lange mit der Weiterführung wartet, bis ich weiss, dass jedes File fertig heruntergeladen wurde bzw. ein Timeout gekommen wäre. Muss nicht perfekt sein, ist ja mehr zum Eigengebrauch. Kann mir jemand einen Tipp geben? (QT 3.2.3)