Qt C++ ściąganie wyników Lotto z Lotto.pl
Ostatnio zmodyfikowano 2016-04-14 19:34
Kefirek Temat założony przez niniejszego użytkownika |
Qt C++ ściąganie wyników Lotto z Lotto.pl » 2016-04-09 18:12:16 Witam Pytanie jak w temacie jak pobrać wyniki losowań z Lotto.pl Wiem,że pytanie jest bardzo ogólne, ale faktycznie nie wiem jak się za to zabrać. Pozdrawiam |
|
Monika90 |
» 2016-04-09 18:46:29 To zależy od tego czy lotto.pl przewidziało taką możliwość i ma jakieś API do tego, czy też będziesz musiał wyciągać to od nich na siłę. Jeżeli to pierwsze to przeczytaj dokumentację, a jak drugie to ściągasz stronę do std::stringa i w nim szukasz tego co ci potrzebne. W przypadku lotto jest to łatwe, to fragment ich strony głównej: <div class="glowna_wyniki_lotto"> <div class="wynik_lotto">21 </div> <div class="wynik_lotto">23 </div> <div class="wynik_lotto">29 </div> <div class="wynik_lotto">33 </div> <div class="wynik_lotto">34 </div> <div class="wynik_lotto">35 </div> </div> </div>
Podane jak na tacy. |
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2016-04-09 19:08:54 Rzeczywiście wygląda to bardzo prosto jeżeli chodzi o sposób wykonania: wczytanie strony do stringa. Jednak nie bardzo wiem jak ściągnąć kod strony i to tej właściwej z wynikami. Przeszukanie stringa nie stanowi problemu. |
|
turaz |
» 2016-04-09 19:24:37 |
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2016-04-09 19:29:11 Dzięki już zaglądam do doc |
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2016-04-10 10:06:33 Witam ponownie Poniżej zamieszczam kod: #ifndef BASEUPDATE_H #define BASEUPDATE_H
#include <QObject> #include <QWidget> #include <QtNetwork/QNetworkAccessManager> #include <QEventLoop> #include <QNetworkRequest> #include <QNetworkReply>
class BaseUpdate : public QObject { Q_OBJECT public: explicit BaseUpdate( QObject * parent = 0 ); QNetworkAccessManager * m_networkManager; void ReadInternetPage(); signals: public slots: void onRequestCompleted( QNetworkReply * reply ); };
#endif
#include "baseupdate.h"
BaseUpdate::BaseUpdate( QObject * parent ) : QObject( parent ) { }
void BaseUpdate::ReadInternetPage() { QNetworkRequest request; request.setUrl( QUrl( "http://www.lotto.pl/mini-lotto/wyniki-i-wygrane" ) ); m_networkManager = new QNetworkAccessManager( this ); connect( m_networkManager, SIGNAL( finished( QNetworkReply * ) ), this, SLOT( onRequestCompleted( QNetworkReply * ) ) ); m_networkManager->get( request ); }
void BaseUpdate::onRequestCompleted( QNetworkReply * reply ) { QByteArray data = reply->readAll(); qDebug() << data; }
pBaseUpdate = new BaseUpdate( this ); pBaseUpdate->ReadInternetPage(); delete pBaseUpdate;
Program startuje, ale zamiast zawartości strony otrzymuje: qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated Pewnie jakiś błąd odczytu? |
|
Kefirek Temat założony przez niniejszego użytkownika |
» 2016-04-10 10:25:27 instrukcja: nic nie wyświetla. Wygląda na to, że dane nie zostały zapakowane do "data". |
|
j23 |
» 2016-04-10 10:32:39 To zależy od tego czy lotto.pl przewidziało taką możliwość i ma jakieś API do tego (...) |
Ma -> http://www.totalizator.pl/__data/assets/file/0009/43974/za-nr-1,.pdf |
|
« 1 » 2 |