QT - Pobieranie tekstu z strony internetowej.

0

Witajcie,
mam pewną stronę, znam jej source i chciałbym z niej pobrać kawałek dynamicznego tekstu.
Niestety nie mam czasu żeby się nauczyć jak działa ten cały html, ale jest to mi bardzo potrzebne do pewnego projektu.
Kawałek, o który mi chodzi wygląda tak:
<li class="clear clearfix"><span class="row_title">DATA:</span><span class="row_data">555</span></li>
I chciałbym z tego pobrać liczbę 555. Wiem tylko tyle że w Qt jest coś takiego jak QNetworkRequest, z którego chciałbym skorzystać.
Wiem, że może moje pytanie brzmi trochę że tak powiem "noobsko", ale jest to dla mnie bardzo ważne.
Z góry dziękuje za odpowiedź.

0

Użyj wyrażenia regularnego na pobranym tekście ze strony. Oto przykładowe, najprostsze wyrażenie:
"<li class=\"clear clearfix\"><span class=\"row_title\">DATA:</span><span class=\"row_data\">(.*?)</span></li>"

Nie wiem, czy Qt ma coś do wyrażeń regularnych (pewnie ma :D ). Ja używam pyqt4, więc do wyrażeń regularnych i pobierania treści stron korzystam z modułów Pythona (urllib2 oraz re) ;)

0

Ale jak wpierw pobrać tekst ze strony, a dopiero potem pobrać te zmienne? :)

1

Najpierw sobie stwórz nowy QWebView i załaduj stronę:

 QWebView qwv = new QWebView();
qwv->setUrl(QUrl::QUrl("http://strona.pl/");

potem napisz funkcję która będzie z tej strony pobierać ten tekst:
QWebElement elem = qwv->page()->mainFrame()->documentElement()->findFirst("span[class=\"row_data\"]");

Pamiętaj, że zanim pobierzesz tekst ze strony musisz zaczekać aż ona się wczyta:
Użyj connect i sygnału loadFinished

potem jeszcze jak chcesz zamieniać QWebElement na stringa to użyj funkcji toString

no i na koniec... czytaj:
http://doc.qt.nokia.com/4.7/qwebview.html
http://doc.qt.nokia.com/4.7/qwebelement.html
http://doc.qt.nokia.com/4.7/qwebelementcollection.html

0

Dzięki,
ale niestety nie pobiera tego elementu, o który mi chodziło, bo jest tam wiele takich, które tak się zaczynają ;/

0

Już nie ważne, sam odkryłem, wystarczy:
zamiast QWebElemnt dać QWebElementCollection i ta klasa wczytuję wszystkie określone przeze mnie elementy, a potem można po nich przeskakiwać.
Jeszcze raz dziękuje za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1