crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Загрузка исходника html страницы
RazrFalcon
  опции профиля:
сообщение 16.7.2010, 0:40
Сообщение #1


Zombie Mod
*****

Группа: Участник
Сообщений: 1654
Регистрация: 24.5.2010
Из: Харьков
Пользователь №: 1752

Спасибо сказали: 64 раз(а)




Репутация:   212  


Пример: нужно узнать рейтинг фильма на "кинопоиске" (ссылка на страницу имеется).
С чего начать, совсем непонятно.
Раскрывающийся текст
<div style="color: #f60; font-family: tahoma; font-size: 25px"><a href="/level/83/film/301/" class="continue" style="background: url(/images/dot_or.gif) 0 93% repeat-x; font-weight: normal !important; text-decoration: none">8.496<span style="font:100 14px tahoma, verdana">&nbsp;&nbsp;44&nbsp;168</span></a>
</div>
8.496 как раз и надо получить. :(
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
ufna
  опции профиля:
сообщение 27.8.2010, 11:42
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 362
Регистрация: 24.5.2008
Из: Курган/СПб
Пользователь №: 182

Спасибо сказали: 29 раз(а)




Репутация:   5  


Извини за резкость, но задача в ассистанте разобрана на кучу раз.

Минимальный пример:

a_teststate.h
//-----------------------------------------------------------------------------
// File: a_teststate.h
//
// Desc:
//-----------------------------------------------------------------------------

#ifndef A_TESTSTATE_H
#define A_TESTSTATE_H

#include <QObject>

#include <QNetworkAccessManager>
#include <QNetworkReply>
#include <QNetworkRequest>

//--------------------------------------------------------------------------------------
// Name: cTestState
// Desc:
//--------------------------------------------------------------------------------------
class cTestState :
        public QObject
{
    Q_OBJECT

public:
    // Constructor & destructor
    //----------------------------------------------------------------------------------
    cTestState(QObject *parent = 0);
    ~cTestState();

    QNetworkAccessManager* networkManager() { return pNetManager; }

private:
    //
    //----------------------------------------------------------------------------------
    QNetworkAccessManager *pNetManager;

public slots:
    // control
    //----------------------------------------------------------------------------------
    void slotReadyRead();
    void slotError(QNetworkReply::NetworkError);
    void slotFinished();

};

#endif



a_teststate.cpp
//-----------------------------------------------------------------------------
// File: a_teststate.cpp
//
// Desc:
//-----------------------------------------------------------------------------

#include "a_teststate.h"

#include <QDebug>

//--------------------------------------------------------------------------------------
// cTestState class constructor
//--------------------------------------------------------------------------------------
cTestState::cTestState(QObject *parent)
    : QObject(parent)
{      
    pNetManager = new QNetworkAccessManager(this);

    QNetworkRequest request;
    request.setUrl(QUrl("http://ufna.ru/"));

    QNetworkReply *reply = pNetManager->get(request);
    connect(reply, SIGNAL(readyRead()), this, SLOT(slotReadyRead()));
    connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
                this, SLOT(slotError(QNetworkReply::NetworkError)));
    connect(reply, SIGNAL(finished()), this, SLOT(slotFinished()));
}

//--------------------------------------------------------------------------------------
cTestState::~cTestState() {}

//=============================================================================
// PUBLIC SLOTS
//=============================================================================

//--------------------------------------------------------------------------------------
void cTestState::slotReadyRead()
{
    qDebug() << "cTestState::slotReadyRead()";
}

//--------------------------------------------------------------------------------------
void cTestState::slotError(QNetworkReply::NetworkError error)
{
    qDebug() << "cTestState::slotError("
            << error << ")";
}

//--------------------------------------------------------------------------------------
void cTestState::slotFinished()
{
    qDebug() << "cTestState::slotFinished()";

    QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
    reply->deleteLater();

    // Вывод загруженной страницы
    QByteArray data = reply->readAll();
    QString str = QString::fromUtf8(data);
    qDebug() << str;
}





а, счас проверим

Цитата(kwisp @ 27.8.2010, 12:35) *
ufna,
тебе же говорят - сервер не дает страничку если ты не браузер. я сейчас только что проверил. надо под браузер шифроваться для этого надо знать значени полей http запроса отправляемого браузером. я их наизусть не помню - поставлю wireshark посмотрю. )


счас проверим. В принципе, там проверка либо по яве, либо по тому что шлется в юзер-агент.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- RazrFalcon   Загрузка исходника html страницы   16.7.2010, 0:40
- - Litkevich Yuriy   ты не знаешь как загрузить страницу?   16.7.2010, 0:43
|- - RazrFalcon   Цитата(Litkevich Yuriy @ 16.7.2010, 0:43)...   16.7.2010, 0:47
- - ufna   QNetworkAssistant + QNetworkReply Примеры есть по...   16.7.2010, 9:33
- - RazrFalcon   Можно какой то, любой, пример. Мучаюсь-мучаюсь а н...   9.8.2010, 16:11
- - kwisp   вышло что нибудь толковое или нет?   19.8.2010, 9:30
|- - RazrFalcon   Цитата(kwisp @ 19.8.2010, 9:30) вышло что...   26.8.2010, 23:12
- - kwisp   RazrFalcon, скинь сайт этого кинозала. если будет...   27.8.2010, 9:03
|- - RazrFalcon   Цитата(kwisp @ 27.8.2010, 9:03) скинь сай...   27.8.2010, 10:41
- - kwisp   RazrFalcon, ну самое быстрое но не самое красивое...   27.8.2010, 11:12
- - ufna   Не, ну реально, посмотреть любой пример с QNetwort...   27.8.2010, 11:20
- - kwisp   ufna, тебе же говорят - сервер не дает страничку ...   27.8.2010, 11:35
|- - BRE   Нужно "прикинутся" и все он будет отдава...   27.8.2010, 11:54
- - ufna   Извини за резкость, но задача в ассистанте разобра...   27.8.2010, 11:42
- - kwisp   ну проверь. о результатах доложить   27.8.2010, 11:49
- - ufna   В примере выше моем делаем в конструкторе: reques...   27.8.2010, 11:55
- - kwisp   другое дело. и так тоже работает Цитатаwget -U ...   27.8.2010, 11:58
|- - RazrFalcon   Цитата(kwisp @ 27.8.2010, 11:58) wget -U ...   27.8.2010, 13:22
- - k0p4   А как скачать большой файл? К примеру void MainWi...   18.9.2010, 21:01
- - k0p4   Решил свою проблему. Код лежит http://paste.org/pa...   19.9.2010, 10:41


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 8:38