Pobieranie kodu zrodlowego strony.

0

Mam pytanie. Jak pobrać kod źródłowy strony? Z jakiej biblioteki mam skorzystać?
Znalazłem coś na temat curl, ale nie wiem czy nie istnieje jakis inny sposób bo c++ builder 6 standardowo chyba nie jest wyposażony w tą bibliotekę.
Prosiłbym o pomoc.

0

Bezproblemowo i szybko zrobisz to za pomoca libcurl'a. wejdz na strone tej biblioteki, zobacz samples i masz tam bodajze pierwszy o pobieraniu strony.

0

wyskakuje mi error i twierdzi ze nie mam takiej biblioteki gdy probuje dac include

0

Nie mam c++ buildera, poszukaj w googlach.
Ja znalazlem cos takiego http://stackoverflow.com/questions/1803002/how-can-i-add-libcurl-to-a-borland-c-builder-6-project

0

jeżeli choć trochę Qt to możesz zrobić to za pomocą QNetworkAccessManager

0

BCB 6 ma Indy a tam jest IdHTTP więc w 3 sekundy to zrobisz:

Memo1->Text = IdHTTP1->Get("http://4programmers.net");
0

No na taka odpowiedz mialem nadzieje ale wyswietla mi blad ze IdHTTP1 undefined .... cos mam dodatkowo pobrac?

0

Przecież masz taki komponent na zakładce Indy Clients

0

no wlasnie nie mam ... musze to zainstalowac czy jak?

0
 void pobierz()
{

  CURL *curl;
  CURLcode res;
  curl = curl_easy_init ();
  if (curl)
  {
    curl_easy_setopt (curl, CURLOPT_URL, "http://google.pl");
    res = curl_easy_perform (curl);
    curl_easy_cleanup (curl);

}
Edit2->Text = res;
}

Taka funkcje zrobilem ale w ogole nie robi tego co bym chcial .... a chce zeby gdzies ten kod zrodlowy sie wyswietlal

0

To może ja zaproponuję jeszcze nie wspomniane URLDownloadToFile
IBindStatusCallBack - Jak uzyskać ProgessBar do funkcji UrlDownloadToFile

0

bardzo fajne ale to delhpi ... mi w c++ trzeba ....

0

CURLcode res; a nie ma toto żadnego toString(); czy coś? bo może w tym problem

0
ehe napisał(a):

CURLcode res; a nie ma toto żadnego toString(); czy coś? bo może w tym problem

No nie ma fakt ... a powinno byc? xd

0

Jesli moze byc w qt to masz. To jest glowna czesc sluzaca do pobrania kodu strony. Jak sie przyda to dobrze jak nie to nie xD

class MaxvideoHandler : public QObject
{
    Q_OBJECT
public:
    explicit MaxvideoHandler(QObject *parent = 0);
    ~MaxvideoHandler();
    QByteArray getHtmlSource();
    void setUrl(const QUrl url);
private:
    QUrl url;
    QByteArray htmlSource;
    QNetworkAccessManager *manager;
    QNetworkRequest *request;
    QNetworkReply *reply;
signals:
    void finished();
public slots:
    void requestFinished(QNetworkReply*);
};
#include "maxvideohandler.h"

MaxvideoHandler::MaxvideoHandler(QObject *parent) :
    QObject(parent)
{
    request = new QNetworkRequest;
    manager = new QNetworkAccessManager(this);

    connect(manager,SIGNAL(finished(QNetworkReply*)),this,SLOT(requestFinished(QNetworkReply*)));
}

MaxvideoHandler::~MaxvideoHandler()
{
    delete request;
    delete manager;
}

void MaxvideoHandler::setUrl(const QUrl url)
{
    this->url = url;
    request->setUrl(url);
    reply = manager->get(*request);
}

QByteArray MaxvideoHandler::getHtmlSource()
{
    return htmlSource;
}

void MaxvideoHandler::requestFinished(QNetworkReply *reply)
{
    htmlSource = reply->readAll();
    emit(this->finished());
}

Przy uzyciu trzeba odebrac sygnal od klasy informujacy o zakonczeniu pracy. emit(this->finished());

0

Nie wiedzialem nawet ze jest cos takiego jak qt .... troche ciezko mi bedzie to zastosowac... przejze dokladnie ten kod i poeksperymentuje. Mam nadzieje ze ogarne.

0
MajQel napisał(a):

bardzo fajne ale to delhpi ... mi w c++ trzeba ....
URLDownloadToFile to WinAPI, Delphi nie jest wymagane, można użyć w zwykłym c++ bez żadnych dodatkowych bibliotek.

0

nie wiem jak tego uzyc ... chociaz wydaje mi sie najbardziej uzyteczne z tego wszystkiego ...

0
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 URLDownloadToFile(
  0,_T("http://classic.battle.net/war3/ladder/w3xp-ladders.aspx?Gateway=Northrend"),
  _T("C:\temp.txt"),
  0, 0);
}
 

Otoz mam cos takiego .... ale wyswietla mi sie blad
[Linker Error] Unresolved external 'URLDownloadToFileA' referenced from C:\USERS\NAWROT\DESKTOP\MICHAŁ\WLASNE PROGRAMY\STATS\UNIT1.OBJ

Jak sie pozbyc bledu??

1

Musisz zlinkować Urlmon.lib.

0

a jak to mam zrobic?

0 użytkowników online, w tym zalogowanych: 0, gości: 0