C++ Jak pobrać stronę www do pliku txt.

0

Witam

Przekopałem cały internet i nigdzie nie ma najmniejszego przykładu jak można zapisać otwartą strone WWW do pliku.TXT.

Dla expertów pewnie to są 3 linijki kodu a w internecie znalazłem skomplikowane całe strony z kodem wywalające z 30 błędów.

Czy ktoś wie jak zapisać strone do txt ? potrzebuje to samo co daje kliknięcie prawym na ekran i Save Page As..

Dziękuję.

1

W czystym C++ (tylko standardowe biblioteki) nie da się.
Musisz się zdecydować na jakąś bibliotekę lub framework.
Np Qt, Poco, boost asio, .... .

0

Dołączyłem CURL do swojego Dev C++ ale wurzuca mi błedy z deklaracjami funkci itd..
C++ ucze się dopiero 5 dni stąd moje pyatnia.
Mam otwartą stronę na której jest chyba Java Script ponieważ podglądając komunikację wireshark widzę że przesyłane są tylko pojedyncze informacje , moje pytanie brzmi jak je przechwycić albo zapisać z strony.
Dziękuję.

0
MarekR22 napisał(a):

W czystym C++ (tylko standardowe biblioteki) nie da się.

To zależy czy API systemowe zaliczasz do standardowych bibliotek. Jeśli tak to w sumie mógłby na socketach zaimplementować HTTP. Właściwie, jeśli skupić się na podstawowym przypadku da się to zrobićw rozsądnym czasie. Jednak w praktyce lepiej użyć biblioteki. Ja proponuję użyć dedykowanej jak curl, a nie kombajn jak boost czy qt.

0

Da sie odczytać w ogóle text z otwartej przeglądarki i zapisać do pliku? albo do zmniennej?

1
Sirioua napisał(a):

Da sie odczytać w ogóle text z otwartej przeglądarki i zapisać do pliku? albo do zmiennej?

Czy za pomocą C++ i curl da się pobrać zawartość strony? oczywiście, że TAK i jest to proste.
Czy da się odczytać zawartość przeglądarki? To zależy, od wielu czynników. To jest już bardziej skomplikowane i zdecydowanie poza twoim zasięgiem.

Zresztą coraz bardziej podejrzewam Problem XY

0

ale za pomocą GetWindowText pobiera mi tylko nazwe otwartej karty a nie zawartość tej strono pomimo że definicja GetWindowText to właśnie pobieranie textu strony.

Czy za pomocą C++ i curl da się pobrać zawartość strony? oczywiście, że TAK i jest to proste.
Czy da się odczytać zawartość przeglądarki? To zależy, od wielu czynników. To jest już bardziej skomplikowane i zdecydowanie poza twoim zasięgiem.

pobrać to następstwo odczytać , jeżeli pobrać się da to odczytać już nie?

0

pobrać to następstwo odczytać , jeżeli pobrać się da to odczytać już nie?

Między pobraniem strony prosto z serwera przy pomocy jakiejś biblioteki obsługującej HTTP a odczytem zawartości przeglądarki jest spora różnica. Może napisz, co konkretnie chcesz zrobić.

0

Mam otwartą stronę np wp.pl i chce zapisać do pliku txt zawartość tej strony. Czyli text który mogę przeczytać jak jest otwarta np. Treść wiadomości zamiast czytać ze strony i przepisywać chce zapisać do pliku txt.

0

W tym pliku txt ma być sama treść, bez tagów HTML?

0

Jeśli chcesz przetworzyć źródło HTML w postać czysto tekstową, powinieneś mieć bibliotekę czy framework który Ci to wykona. Biblioteka curl będzie umożliwiała wyłącznie ściągnięcie źródeł lub pliku wskazywanego w protokole. Nie dokona interpretacji kodu HTML do postaci txt.
Stąd, proszę wybierz:

  1. Chcę ściągnąć źródła strony (tak pisałeś wcześniej)
  2. Chcę wyświetlić zawartość tekstowo.

Do 1 masz np. curl, do np. 2 masz:

  • libxml2 - do prostego rozebrania tekstu z tagów HTML
  • proste wywołanie w Linux: elinks -dump www.strona.com > plik.txt
  • użycie obszernych rozwiązań np. WebKit https://webkit.org/
  • ...

Zadaj także sobie pytanie. Co to dla Ciebie oznacza "strona" lub "zawartość"? Czy wynik działania skryptów JS na tejże także? Jeśli tak to rozwiązanie z WebKit może mieć sens lub wręcz posłużenie się dostępną przeglądarką/silnikiem renderującym w danym systemie.

0

W Qt masz do dyspozycji klasę QWebEnginePage, która oferuje m.in:

  • pobranie źródła strony
  • wyciągnięcie tekstu ze źródła (bez znaczników HTML)
  • napisanie i odpalenie własnego skryptu na stronie (JavaScript)

Tylko najpierw musiałbyś sprecyzować co dokładnie chcesz osiągnąć, bo samo "pobranie tekstu ze strony" jest mało precyzyjne.

0
Sirioua napisał(a):

C++ ucze się dopiero 5 dni stąd moje pyatnia.

https://gist.github.com/alghanmi/c5d7b761b2c9ab199157

1

potrzebuje to samo co daje kliknięcie prawym na ekran i Save Page As..

Zapisanie strony wraz z wymaganymi do jej poprawnego wyświetlenia elementami (CSS, JS, grafika, fonty, itd.):

> wget -E -H -k -p <URL>

W długich opcjach:

> wget --adjust-extension --span-hosts --convert-links --page-requisites <URL>

Tak, to jest tak proste.

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