0

HTMLソースコードを解析しようとしています。これは、解析しようとしている Web ページのアドレスです。以下のコードを書きましたが、メタのコンテンツを引き出したい最後のステップで機能しません:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QNetworkAccessManager manager;
    QNetworkReply *reply = manager.get(QNetworkRequest(QUrl("https://www.instagram.com/p/BTwnRykl6EM/")));
    QEventLoop event;
    QObject::connect(reply, SIGNAL(finished()), &event, SLOT(quit()));
    event.exec();
    QString me = reply->readAll();
    QString x;
    //-------------------------------------------------------------------------------------------------------
    //qDebug()<<me;
    //-------------------------------------------------------------------------------------------------------
    QXmlStreamReader reader(me);
    if(reader.readNextStartElement()){
        if(reader.name()=="html"){
            while (reader.readNextStartElement()) {
                if(reader.name()=="head"){
                    while (reader.readNextStartElement()) {
                        if(reader.name()=="meta" && reader.attributes().hasAttribute("property") && reader.attributes().value("property").toString()=="og:image")
                            x = reader.attributes().value("content").toString();
                        else{
                            qDebug()<<"why?";
                            reader.skipCurrentElement();
                        }
                    }
                }
                else
                    reader.skipCurrentElement();
            }
        }
        else
            reader.skipCurrentElement();
    }
    qDebug()<<x;
    return 0;
}

そして、この部分は機能しません:

if(reader.name()=="meta" && reader.attributes().hasAttribute("property") && reader.attributes().value("property").toString()=="og:image")
    x = reader.attributes().value("content").toString();
else{
    qDebug()<<"why?";
    reader.skipCurrentElement();
}

とプリント

なぜ?

私のコードの何が問題なのですか?

4

1 に答える 1