[C++] Program do pobierania pliku ze strony.

mkk-13
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 12 cze 2008, o 15:18
Płeć: Mężczyzna
Lokalizacja: Izabelin
Podziękował: 1 raz

[C++] Program do pobierania pliku ze strony.

Post autor: mkk-13 »

Witam.
Raz na tydzień na stronie internetowej pojawia się nowy plik PDF z zadaniami.
Głównie z nudy oraz chęci rozwoju umiejętności programowania, chciałem napisać program, umieszczony na pulpicie, który automatycznie będzie ściągał ze strony najnowszy plik. Pliki mają nazwę z*.pdf, \(\displaystyle{ \ast \in N}\).

Szczerze nie wiem jak się do tego zabrać. Proszę o pomoc.
abc666

[C++] Program do pobierania pliku ze strony.

Post autor: abc666 »

A w jakim języku chcesz to pisać ?
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Program do pobierania pliku ze strony.

Post autor: Afish »

Możliwości masz wiele. Możesz wykorzystać gotowe frameworki/biblioteki do obsługi sieci i wtedy to będzie banalne (hint: QT, curl). Możesz łączyć się po sockecie i ściągać dane, a potem zapisywać je ręcznie do pliku (hint: socket, na windowsie WinSock).
mkk-13
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 12 cze 2008, o 15:18
Płeć: Mężczyzna
Lokalizacja: Izabelin
Podziękował: 1 raz

[C++] Program do pobierania pliku ze strony.

Post autor: mkk-13 »

abc666 pisze:A w jakim języku chcesz to pisać ?
Planowałem C++.
Afish pisze:Możliwości masz wiele. Możesz wykorzystać gotowe frameworki/biblioteki do obsługi sieci i wtedy to będzie banalne (hint: QT, curl). Możesz łączyć się po sockecie i ściągać dane, a potem zapisywać je ręcznie do pliku (hint: socket, na windowsie WinSock).
Hmmm curl wydaje się dość łopatologiczny i stworzony jak najbardziej pod to.

Jeśli wiesz jak wykorzystać te biblioteki, czy mógłbyś jakoś bardziej to zaprezentować? Jakichś konkretnych danych potrzebujesz do stworzenia podstawowego kodu? (Albo może bardziej tego skomplikowanego, bo z podstawowym mogę się pobawić samemu ;p )
Awatar użytkownika
Althorion
Użytkownik
Użytkownik
Posty: 4541
Rejestracja: 5 kwie 2009, o 18:54
Płeć: Mężczyzna
Lokalizacja: Wrocław
Podziękował: 9 razy
Pomógł: 662 razy

[C++] Program do pobierania pliku ze strony.

Post autor: Althorion »

Moim zdaniem pisanie takiego programu w C++ to dziwaczne wykorzystanie tego języka, ale rozumiem, że można tak robić celowo, dla treningu. Tak czy owak, jest to zabawa raczej dla języków skryptowych (Python czy nawet bash).

Jeżeli chcesz korzystać z Curla, to najprymitywniejszy możliwy do napisania program będzie zapamiętywał (w jakimś pliku konfiguracyjnym) numerek ostatnio ściągniętego PDFa i wywoływał przy uruchomieniu CURLa jako proces zewnętrzny dla odpowiedniego adresu, żądając pliku o numer późniejszego.
Afish
Moderator
Moderator
Posty: 2828
Rejestracja: 15 cze 2008, o 15:45
Płeć: Mężczyzna
Lokalizacja: Seattle, WA
Podziękował: 3 razy
Pomógł: 356 razy

[C++] Program do pobierania pliku ze strony.

Post autor: Afish »

mkk-13 pisze:Jeśli wiesz jak wykorzystać te biblioteki, czy mógłbyś jakoś bardziej to zaprezentować?
Wątpię, żebym przedstawił to lepiej, niż tutoriale obecne w sieci. Pozostaje Ci googlowanie, ale obsługa biblioteki nie jest trudna, więc dasz sobie radę.
mkk-13
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 12 cze 2008, o 15:18
Płeć: Mężczyzna
Lokalizacja: Izabelin
Podziękował: 1 raz

[C++] Program do pobierania pliku ze strony.

Post autor: mkk-13 »

Pościągałem biblioteki cURL i starałem się je zainstalować, aby były do użytku z Ms Visual C++ 2010, a więc ogólnie VC10. Niestety z tego co widziałem, jest to naprawdę wymagające zadanie -> instalacja pod Windowsem ;D.

Jeśli masz czasu troszkę, nie mógł byś zajrzeć dokładniej i spróbować? Może znajdziesz jakieś błędy w kodzie, czy coś.
Stąd można pobrać:

Kod: Zaznacz cały

http://curl.haxx.se/download.html
A na tym się wzorowałem, przy instalacji [znalezione w ściągniętym pliku (BUILD.WINDOWS.txt) ze strony wyżej]:

Kod: Zaznacz cały

Building with Visual C++
========================

Open a Visual Studio Command prompt or the SDK CMD shell.

    Using the CMD Shell:
     choose the right environment via the setenv command (see setenv /?)
     for the full list of options. setenv /xp /x86 /release for example.

    Using the Visual Studio command prompt Shell:
     Everything is already pre-configured by calling one of the command
     prompt.

Once you are in the console, go to the winbuild directory in the Curl 
sources:
    cd curl-src\winbuild

Then you can call nmake /f makefile with the desired options (see below).
The builds will be in the top src directory, builds\ directory, in 
a directory named using the options given to the nmake call.

nmake /f makefile.vc mode=<static or dll> <options>
where <options> is one or many of:
  VC=<6,7,8,9,10>              - VC versions
  WITH_DEVEL=<path>            - Paths for the development files (SSL, zlib, etc.)
                                 Default to sibbling directory deps: ../deps
                                 Libraries can be fetched at http://pecl2.php.net/downloads/php-windows-builds/
                                 Uncompress them into the deps folder.
  WITH_SSL=<dll or static>     - Enable OpenSSL support, DLL or static
  WITH_ZLIB=<dll or static>    - Enable ZLib support, DLL or static
  WITH_SSH2=<dll or static>    - Enable LIbSSH2 support, DLL or static
  USE_SSSPI=<yes or no>        - Enable SSPI support, default to yes
  USE_IPV6=<yes or no>         - Enable IPV6, default to yes
  DEBUG=<yes or no>            - Debug builds
  USE_IDN=<yes or no>          - Wheter or not to use IDN Windows APIs. Requires Windows Vista or later.
                                 or to install http://www.microsoft.com/downloads/details.aspx?FamilyID=AD6158D7-DDBA-416A-9109-07607425A815
  GEN_PDB=<yes or no>          - Generate Program Database (debug symbols release build)

Użyłem komendy: nmake /f makefile.vc mode=dll VC=10
Wyrzuciło mi błędy:

Kod: Zaznacz cały

NMAKE : fatal error U1077: ' "ścieżka Visuala\VC\BIN\link.exe" ' : return code '0x460'
Stop.
NMAKE : fatal error U1077: ' ""ścieżka Visuala\VC\BIN\nmake.exe" ' : return code '0x2'
Stop.

O tyle staram się uzyskać pomoc, gdyż w internecie mało jest do tego zrozumiałych rozwiązań, a ja już znalazłem odpowiedni skrypt od cURL'a w c++ i myślę jak go przerobić, żeby odpowiednie pliki zawsze ściągał ;p
abc666

[C++] Program do pobierania pliku ze strony.

Post autor: abc666 »

Wiesz, w sumie to możesz po prostu sobie wgeta zainstalować i napisać króciutki "skrypt" w .bat. Jak wygląda sprawa z numeracją? Czy są to kolejne numery? Czy są zera wiodące?
mkk-13
Użytkownik
Użytkownik
Posty: 10
Rejestracja: 12 cze 2008, o 15:18
Płeć: Mężczyzna
Lokalizacja: Izabelin
Podziękował: 1 raz

[C++] Program do pobierania pliku ze strony.

Post autor: mkk-13 »

abc666 pisze:Wiesz, w sumie to możesz po prostu sobie wgeta zainstalować i napisać króciutki "skrypt" w .bat. Jak wygląda sprawa z numeracją? Czy są to kolejne numery? Czy są zera wiodące?
Numery to prawie na 100% kolejne liczby naturalne. Teraz jest plik o nazwie z0.pdf, następny ma byc z1.pdf, itd.
Awatar użytkownika
Zordon
Użytkownik
Użytkownik
Posty: 4977
Rejestracja: 12 lut 2008, o 21:42
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 75 razy
Pomógł: 910 razy

[C++] Program do pobierania pliku ze strony.

Post autor: Zordon »

nie więcej niż 5 linii w pythonie, polecam
zaznajomienie się ze składnią też nie jest zbyt bolesne
ODPOWIEDZ