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.
Pobieranie kodu zrodlowego strony.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
- Rejestracja: dni
- Ostatnio: dni
Bezproblemowo i szybko zrobisz to za pomoca libcurl'a. wejdz na strone tej biblioteki, zobacz samples i masz tam bodajze pierwszy o pobieraniu strony.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
wyskakuje mi error i twierdzi ze nie mam takiej biblioteki gdy probuje dac include
- Rejestracja: dni
- Ostatnio: dni
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
- Rejestracja: dni
- Ostatnio: dni
- Postów: 35
jeżeli choć trochę Qt to możesz zrobić to za pomocą QNetworkAccessManager
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Gorlice
BCB 6 ma Indy a tam jest IdHTTP więc w 3 sekundy to zrobisz:
Memo1->Text = IdHTTP1->Get("http://4programmers.net");
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
No na taka odpowiedz mialem nadzieje ale wyswietla mi blad ze IdHTTP1 undefined .... cos mam dodatkowo pobrac?
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Gorlice
Przecież masz taki komponent na zakładce Indy Clients
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
no wlasnie nie mam ... musze to zainstalowac czy jak?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
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
- Rejestracja: dni
- Ostatnio: dni
To może ja zaproponuję jeszcze nie wspomniane URLDownloadToFile
IBindStatusCallBack - Jak uzyskać ProgessBar do funkcji UrlDownloadToFile
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
bardzo fajne ale to delhpi ... mi w c++ trzeba ....
- Rejestracja: dni
- Ostatnio: dni
CURLcode res; a nie ma toto żadnego toString(); czy coś? bo może w tym problem
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
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
- Rejestracja: dni
- Ostatnio: dni
- Postów: 353
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());
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
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.
- Rejestracja: dni
- Ostatnio: dni
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
nie wiem jak tego uzyc ... chociaz wydaje mi sie najbardziej uzyteczne z tego wszystkiego ...
- Rejestracja: dni
- Ostatnio: dni
- Postów: 93
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??
- Rejestracja: dni
- Ostatnio: dni
Musisz zlinkować Urlmon.lib.