Russian Qt Forum
Ноябрь 25, 2024, 08:24 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: (РЕШЕНО) Как получить содержимое веб-страницы?  (Прочитано 8868 раз)
PinkPanther
Самовар
**
Offline Offline

Сообщений: 169



Просмотр профиля
« : Ноябрь 09, 2009, 15:52 »

Господа, возник вроде как простой вопрос, но я пока не смог его решить.
Имеются куки в виде текста (переменная1=значение; переменная2=значение). Нужно запросить страницу, передав куки в запросе, и получить код страницы.
Как это сделать средствами Qt?
« Последнее редактирование: Ноябрь 09, 2009, 22:57 от PinkPanther » Записан

Эвтаназия - наше хобби!
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #1 : Ноябрь 09, 2009, 15:59 »

Сам не пробовал, но думаю, что смотреть надо в строну классов QWebPage, QWebView..посмотри в документации про QtWebKit Module.
Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
PinkPanther
Самовар
**
Offline Offline

Сообщений: 169



Просмотр профиля
« Ответ #2 : Ноябрь 09, 2009, 16:06 »

Сам не пробовал, но думаю, что смотреть надо в строну классов QWebPage, QWebView..посмотри в документации про QtWebKit Module.

Спасибо!
Вообще, ковыряюсь в них с утра - QWebView вроде как ничего содержательного, кроме ссылки на QWebPage, не выдаёт. QWebPage, в свою очередь, даёт ссылку на QWebFrame, который имеет 2 функции - toHtml() и toPlainText(). Первая возвращает только голый текст со страницы, вторая - подобие текста с разметкой, но с урезанным числом тэгов (в частности, нет <form>, а мне нужно получить значение оттуда). Не могу поверить, что функция, которая реализована во всех браузерах (исходный код - Ctrl-U), здесь недоступна.
Записан

Эвтаназия - наше хобби!
ecspertiza
Супер
******
Offline Offline

Сообщений: 1053


С уважением, мастер конфетного цеха!


Просмотр профиля
« Ответ #3 : Ноябрь 09, 2009, 16:13 »

Ешё как вариант поковыряй QNetworkAccess и ижисним, там что то было для передачи  куков, страницу ты от него получишь если я не ошибаюсь в чистом html.
Записан
kibsoft
Хакер
*****
Offline Offline

Сообщений: 625


Просмотр профиля WWW
« Ответ #4 : Ноябрь 09, 2009, 16:22 »

Да и еще поковыряйся в исходниках Qt Demo Browser qt\demos\browser, он умеет исходный код страницы выдавать Улыбающийся
В файле browsermainwindow.cpp нашел
Код:
void BrowserMainWindow::slotViewPageSource()
{
    if (!currentTab())
        return;

    QString markup = currentTab()->page()->mainFrame()->toHtml();
    QPlainTextEdit *view = new QPlainTextEdit(markup);
    view->setWindowTitle(tr("Page Source of %1").arg(currentTab()->title()));
    view->setMinimumWidth(640);
    view->setAttribute(Qt::WA_DeleteOnClose);
    view->show();
}
« Последнее редактирование: Ноябрь 09, 2009, 16:27 от kibsoft » Записан

http://kibsoft.ru - Download the Qt Media Encoding Library here

The apps that were written using QtMEL:
http://srecorder.com - Screen recording software
catprog
Гость
« Ответ #5 : Ноябрь 09, 2009, 20:11 »

QHttp и QHttpRequestHeader
только им на смену вроде будут или есть уже другие классы, в новых версиях QT
Записан
PinkPanther
Самовар
**
Offline Offline

Сообщений: 169



Просмотр профиля
« Ответ #6 : Ноябрь 09, 2009, 20:16 »

Код:
QString markup = currentTab()->page()->mainFrame()->toHtml();
QPlainTextEdit *view = new QPlainTextEdit(markup);

Спасибо большое! Собственно, примерно так и делал, но допустил ошибку в другом месте. А вот проверить никак не мог - о QPlainTextEdit забыл напрочь. Так бы и не догадался им воспользоваться. Вроде прога заработала, во всяком случае, в полуручном режиме - куки ловлю при авторизации сниффером и скармливаю в окошко, а она их потом пихает в заголовок...  Улыбающийся

Цитировать
Ешё как вариант поковыряй QNetworkAccess и ижисним, там что то было для передачи  куков, страницу ты от него получишь если я не ошибаюсь в чистом html

Вероятно, это более грамотный вариант, чем брать страницу из браузера - долго не мог въехать, что QNetworkReply по сути являет собой буфер. Спасибо за совет!
Записан

Эвтаназия - наше хобби!
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.067 секунд. Запросов: 22.