2012-07-13 3 views
1

Как следует из названия,Нужно ли QtWebkit получать данные с веб-сайтов, которым требуется логин?

Мне нужно получить данные с определенного веб-сайта, которые нуждаются в логинах для использования.

Процедуре входа в систему могут потребоваться файлы cookie или сеансы.

Нужен ли мне QtWebkit, или я могу уйти с помощью только QNetworkAccessManager?

У меня нет опыта для обоих, и я начну учиться, когда пойду. Поэтому, пожалуйста, спасите меня немного времени, сравнение как ^^

Спасибо заранее,

Evan

Edit: После прочтения некоторых связанных ответов, я добавлю некоторые пояснения:

Веб-сайт, находящийся в беспокойстве, не имеет API. Поэтому мне нужно будет очистить веб-элементы для самих данных. Могу ли я сделать это с помощью только QNetworkAccessManager?

ответ

2

Нет, в большинстве случаев вы не нужен полный имитируемый веб-браузер. В большинстве случаев достаточно просто выполнить те же веб-запросы, что и браузер.

Попробуйте записать веб-запросы в своем браузере, используя плагин типа «HTTP Live Headers» или «Firebug» в Firefox. Я думаю, что Chrome предоставляет аналогичный инструмент из коробки. Эти инструменты записывают запросы GET и POST, сделанные веб-сайтом, когда вы отправляете форму на веб-странице.

Другой вариант - проверить код HTML на странице входа. Найдите тег <form> и его поля. Объедините их в запрос GET/POST в своем приложении, чтобы имитировать ту же форму.

Помните, что некоторые страницы используют рандомизированные «токены» в своих формах, некоторые устанавливают токены как файлы cookie. В таких случаях вам необходимо сначала запросить страницу входа в ваше приложение (перед отправкой заполненной формы). У QWebView и QNetworkAccessManager есть поддержка файлов cookie.

Чтобы подвести итог, я думаю, что QWebView предоставляет гораздо более элегантный способ моделирования взаимодействия пользователя с веб-страницей. Однако ручной режим более «легкий», так как вам не нужен Webkit, и ваше приложение может быть быстрее (потому что загружается только HTML-страница без каких-либо связанных ресурсов, таких как изображения, CSS, файлы javascript).

+0

спасибо. а также для подсказок. Слава богу, мне не нужно ссылаться на QtWebkit.dll. – Evan

+0

. Зачем нужна регистрация страницы входа в систему, так как вы можете получить всю необходимую информацию от нюхаемых запросов? –

+0

Обнюхивание сложнее, я думаю. Но это еще один вариант. Обратите внимание, что это только вариант, если страница поддерживает только незашифрованный HTTP, а не только HTTPS. Плагины браузера - лучший вариант, если страница поддерживает только HTTPS. – leemes

0

QWebView как состояния имен классов - это представление, поэтому он просматривает что-то (в данном случае веб-страницы). Если вам не нужно отображать загруженную страницу, вам не требуется просмотр. QNetworkAccessManager может выполнить эту работу, но вам нужны некоторые знания о протоколе HTTP, а также все о целевом сайте: как это сделать для входа в систему, какого типа запроса вы должны отправить для входа и т. Д.

 Смежные вопросы

  • Нет связанных вопросов^_^