How can i get content of web-page

前端 未结 3 1429
误落风尘
误落风尘 2020-12-06 02:26

i\'m trying to get web-page data in string that than i could parse it. I didn\'t found any methods in qwebview, qurl and another. Could you help me? Linux, C++, Qt.

3条回答
  •  误落风尘
    2020-12-06 02:59

    Have you looked at QNetworkAccessManager? Here's a rough and ready sample illustrating usage:

    class MyClass : public QObject
    {
    Q_OBJECT
    
    public:
        MyClass();
        void fetch(); 
    
    public slots:
        void replyFinished(QNetworkReply*);
    
    private:
        QNetworkAccessManager* m_manager;
    };
    
    
    MyClass::MyClass()
    {
        m_manager = new QNetworkAccessManager(this);
    
        connect(m_manager, SIGNAL(finished(QNetworkReply*)),
             this, SLOT(replyFinished(QNetworkReply*)));
    
    }
    
    void MyClass::fetch()
    {
        m_manager->get(QNetworkRequest(QUrl("http://stackoverflow.com")));
    }
    
    void MyClass::replyFinished(QNetworkReply* pReply)
    {
    
        QByteArray data=pReply->readAll();
        QString str(data);
    
        //process str any way you like!
    
    }
    

    In your in your handler for the finished signal you will be passed a QNetworkReply object, which you can read the response from as it inherits from QIODevice. A simple way to do this is just call readAll to get a QByteArray. You can construct a QString from that QByteArray and do whatever you want to do with it.

提交回复
热议问题