Название: Проблема с парсингом страницы Отправлено: wDw от Октябрь 22, 2017, 09:35 хочу получить список элементов, находящихся на загруженной мной странице, пишу:
QWebView *view = new QWebView(); view->load(QUrl ("https://vk.com/id"+target)); QVariant result = view->page()->mainFrame()->evaluateJavaScript("document.getElementsByName(\"img\")"); в дебагер выводится QVariant(QVariantMap, QMap(("item", QVariant(QVariantMap, QMap()))("length", QVariant(double, 0)))) Картинки на странице есть, сама страница загружена в view, в чем может быть проблема? Название: Re: Проблема с парсингом страницы Отправлено: gil9red от Октябрь 22, 2017, 16:24 Метод load выполняется в другом потоке, т.е. если сразу после load торчит код получения result, то он не успеет выполниться
Поэтому нужно дождаться загрузки страницы, а после парсить ее Я делал подобное тут: https://github.com/search?q=user%3Agil9red+evaluateJavaScript&type=Code&utf8=%E2%9C%93 Пример (питон): Код
Там тот же Qt, поэтому переписать проблем не будет Название: Re: Проблема с парсингом страницы Отправлено: wDw от Октябрь 23, 2017, 21:03 написал так:
connect(view, SIGNAL(loadFinished(bool)), &loop, SLOT(quit())); view->load(QUrl ("https://vk.com/id"+target)); loop.exec(); при запуске проги она ждет окончания загрузки страницы, и потом при сделать парсинг крашится и выдает в консоль: QVariant(QVariantMap, QMap(("item", QVariant(QVariantMap, QMap(("pbind", QVariant(QVariantMap, QMap(("pbind", QVariant(Invalid))("rbind", QVariant(Invalid))("rpbind", QVariant(QVariantMap, QMap(("pbind", QVariant(Invalid))("rbind", QVariant(QVariantMap, QMap(("pbind", QVariant(Invalid))("rbind", QVariant(Invalid))("rpbind", QVariant(Invalid)))))("rpbind", QVariant(Invalid))))))))("rbind", QVariant(Invalid))("rpbind", QVariant(Invalid)))))("length", QVariant(double, 0)))) ASSERT: "m_ref == 1" in file player\videosurfacefilter.cpp, line 72 Invalid parameter passed to C runtime function. Invalid parameter passed to C runtime function. Название: Re: Проблема с парсингом страницы Отправлено: wDw от Октябрь 28, 2017, 22:19 проблема с ошибками возникает если на странице есть потоковое видео, ну да ладно.
Вопрос с парсингом остается актуальный. Может кто то привести рабочий пример парсинга какого либо элемента страницы? Название: Re: Проблема с парсингом страницы Отправлено: Alex Custov от Октябрь 30, 2017, 14:03 Может кто то привести рабочий пример парсинга какого либо элемента страницы? https://doc.qt.io/archives/qt-5.5/qwebelement.html |