http://finance.yahoo.com/exchangesにある表のサフィックス列を読みたいです。
でページを読みましたQNetworkManager
。にデータを保存しますQNetworkReply *reply
。ですべてのページを読み取ると、ページがreply->readAll()
取得されるため、正しく取得されます。内部に設定し、内部にあるQWebPage
すべてのテーブルを取得したいと考えています。
使用したいテーブルを取得するために、QWebElement
それを読み取ることができません。必要なテーブルと同じレベルのすべてのテーブルを読み取りましたが、QWebElementCollection
取得したテーブルは空です。
私が間違っていることと、テーブルを読むためにしなければならないことは何ですか?
void getMarketListFromReply(QNetworkReply *reply) {
std::cout << "Reading page" << std::endl;
const QString html(reply->readAll()); // html contain the code
QWebPage page;
std::cout << "Setting page." << std::endl;
page.mainFrame()->setHtml(html);
std::cout << "Retrieving tables" << std::endl;
QWebElementCollection tables = page.mainFrame()->documentElement().findAll("html body div.screen div.content table");
const int size = tables.count(); // size it's 0 :-(
std::cout << "size: " << size << std::endl;
for (int i = 0; i < size; i++) {
std::cout << i << ": " << tables.at(i).toPlainText().toStdString() << std::endl;
}
}