
📥 Jak pobrać całą stronę przez Wget na Windows
Bezpłatne narzędzie wiersza poleceń Wget potrafi tworzyć kopie lustrzane witryn, pobierając każdą stronę, każdy obraz, każdy plik CSS i zapisując je w folderze na dysku. Brzmi jak magia, ale to czysta inżynieria: rekurencyjne przechodzenie po linkach, konwersja ścieżek na względne i staranne zachowanie struktury. Po takiej archiwizacji witryna otwiera się lokalnie jak żywa, wystarczy kliknąć dowolny plik .html.
Problem w tym, że porządnych poradników dla Windows praktycznie nie ma. Większość instrukcji jest napisana pod Uniksa, a przeciętny użytkownik Windows potrzebuje gotowego pliku .exe, zrozumiałych poleceń i ochrony przed typowymi pułapkami, takimi jak nieskończona rekurencja czy uszkodzone linki. Tę lukę właśnie wypełnimy.
💡 Szybki przegląd:
- Pobierz Wget dla Windows i dodaj ścieżkę do narzędzia do systemowej zmiennej PATH
- Otwórz wiersz poleceń w folderze docelowym i wykonaj polecenie tworzenia kopii lustrzanej
- Po pobraniu napraw uszkodzone linki i ścieżki za pomocą grepWin, archiwum jest gotowe do przeglądania
- Jeśli rekurencja nie jest potrzebna, użyj trybu z wcześniej przygotowaną listą adresów URL
Po co w ogóle pobierać całą witrynę
Internet nie jest wieczny. Witryny są zamykane, zmieniają właścicieli, przechodzą redesign i tracą starą zawartość. Społeczność data-hoarderów na Reddicie dawno temu przekształciła archiwizację w kulturę i nie bez powodu. Nie może Pan przewidzieć, kiedy ulubiony blog zniknie lub cenna dokumentacja trafi za paywall, ale może Pan zachować ją w obecnej postaci.
Scenariusze, od oczywistych po nieoczekiwane. Czeka Pana podróż w miejsce bez internetu, a pod ręką potrzebny jest działający wycinek witryny informacyjnej. Albo kolekcjonuje Pan epoki dizajnu, wczorajszy web z jego tabelkowym układem i kwasowymi przyciskami, to już historia. Nawet własną witrynę warto okresowo mirrorować: to nie jest backup w klasycznym sensie (bazy danych Pan nie odtworzy), ale statyczna migawka, która przetrwa każdą awarię hostingu.
Jedno ważne ostrzeżenie: proszę uważać na to, co Pan pobiera. Prawa autorskie i prywatność nadal obowiązują, prywatne wykorzystanie zapisanej kopii jest zwykle legalne, ale publikacja cudzej zawartości bez pozwolenia może przysporzyć problemów.
Jak Wget obchodzi witrynę: mechanika procesu
Wget startuje z podanego przez Pana adresu URL i rekurencyjnie podąża za każdym wewnętrznym linkiem, teoretycznie do nieskończonej głębokości. Prawidłowo skonfigurowany, nie wyrwie się do otwartego internetu i nie zacznie pobierać Google: opcja --mirror w parze z --reject-regex utrzymuje przechodzenie w granicach docelowej domeny. Wszystkie zewnętrzne linki pozostają nietknięte, po prostu jako tekst z oryginalnym adresem URL.
Po drodze Wget zbiera wszystko: strony HTML, arkusze stylów, skrypty, obrazy, czcionki. Następnie konwertuje wewnętrzne linki na względne, dzięki czemu archiwum otwiera się lokalnie, a nawigacja działa jak na żywej witrynie. Zewnętrzne linki nie są przy tym ruszane i nadal prowadzą do internetu (jeśli ma go Pan w momencie przeglądania).
Archiwum, a nie kopia zapasowa. Odtworzenie witryny z takiej statycznej kopii nie jest możliwe, ponieważ nie ma bazy danych ani logiki serwerowej. Wget działa jak robot wyszukiwarki: znajduje tylko strony, do których ktoś zamieścił odnośnik. Przy okazji zobaczy Pan, jak ważne są wewnętrzne linki dla spójności zawartości, strony osierocone bez linków przychodzących nie trafią do archiwum.
Choć Wget nie jest powiązany z żadną konkretną CMS, z witrynami WordPress działa szczególnie dobrze. Powód jest prosty: standardowe widżety, takie jak chmura tagów i archiwum miesięczne, tworzą gęstą sieć wewnętrznych linków, po której bot porusza się jak po maśle.
Instalacja Wget na Windows
Świat Wgeta historycznie kręci się wokół Uniksa, a użytkownik Windows jest tu gościem. Jeśli wejdzie Pan na oficjalną stronę GNU i pobierze kody źródłowe, otrzyma Pan pakiet plików .c, a nie gotowy program. Potrzebuje Pan gotowego pliku binarnego:
- Proszę wejść na eternallybored.org/misc/wget, nieoficjalne, ale sprawdzone przez lata repozytorium kompilacji Wget dla Windows (aktualna wersja 1.21.4)
- Proszę pobrać archiwum zip najnowszej wersji i rozpakować je do osobnego folderu. Instalacja nie jest potrzebna, to narzędzie przenośne
Jeśli kliknie Pan dwukrotnie plik wget.exe, mignie okno wiersza poleceń i natychmiast się zamknie. Wget to program konsolowy, potrzebuje otwartego terminala w folderze docelowym. Aby nie kopiować pliku .exe do każdego folderu z przyszłymi archiwami, proszę dodać Wget do systemowej zmiennej PATH:
- Proszę nacisnąć
Windows + R, wkleić i wykonać:
1 "C:\Windows\system32\rundll32.exe" sysdm.cpl,EditEnvironmentVariables
- W sekcji Zmienne środowiskowe użytkownika proszę znaleźć zmienną
Path, nacisnąć Edytuj... - Proszę nacisnąć Nowy i podać pełną ścieżkę do folderu z plikiem
wget.exe - Proszę zamknąć wszystkie okna dialogowe przyciskiem OK
Weryfikacja: ponownie Windows + R → cmd /k "wget -V", powinien Pan zobaczyć wersję Wget, a nie komunikat, że polecenie nie zostało rozpoznane.

Kluczowe opcje Wget: szczegółowe omówienie
Większość opcji ma krótkie jednoliterowe odpowiedniki, ale długie nazwy są bardziej znaczące i czytelne bez ściągawki. Wybrałem ustawienia sprawdzone w praktyce, zamiast czytać 181-stronicowy podręcznik GNU Wget otrzymują Państwo esencję z wyjaśnieniem „dlaczego" dla każdej z nich.
Opcje podstawowe
--mirror, włącza nieskończoną rekurencję. W istocie jest to zestaw innych opcji połączonych pod jedną flagą. Bez niej Wget pobierze tylko wskazaną stronę, a nie całą witrynę. To właśnie --mirror umożliwia tworzenie kopii lustrzanej.
--page-requisites, pobiera wszystkie powiązane zasoby: CSS, JavaScript, obrazy, czcionki. Bez tej opcji Państwa archiwum będzie wyglądać jak goły arkusz HTML bez stylów i obrazków.
--convert-links, po zakończeniu pobierania przepisuje linki w plikach HTML tak, aby działały lokalnie. Bezwzględne adresy URL są zastępowane ścieżkami względnymi. To właśnie umożliwia otwarcie index.html z dysku i poruszanie się po stronach jak po działającej witrynie.
--adjust-extension, dopisuje rozszerzenia plikom, które przyszły bez nich. Współczesne witryny często serwują strony bez .html na końcu (czytelne dla człowieka adresy URL) i bez tej opcji przeglądarka nie zrozumie, że ma do czynienia z dokumentem HTML. Jest pewien niuans: jeśli serwer kompresuje treść przez gzip, Wget może błędnie nadać plikowi rozszerzenie .gz. Przed tym chroni następna opcja.
--compression=auto, obsługuje kompresję gzip w locie. Bez niej logo SVG może zostać zapisane jako logo.svg.gz i stać się bezużyteczne podczas lokalnego przeglądania. Opcja nie pojawiła się we wszystkich kompilacjach, użytkownicy Uniksa czasami spotykają się z jej brakiem. W kompilacji dla Windows z eternallybored.org jest ona dostępna.
--reject-regex "/search|/rss", zabrania odwiedzania adresów URL zawierających wskazane słowa. Strony wyszukiwania i kanały RSS generują nieskończone łańcuchy parametrów, które zapychają system plików nazwami o długości kilku ekranów. Wyrażenie regularne tutaj, podstawowa składnia POSIX, nie full-PCRE. Proszę być ostrożnym: /search odetnie nie tylko wyszukiwarkowe śmieci, ale i legalny artykuł z adresem URL w rodzaju yoursite.com/search-for-extraterrestrial-life. W przypadku takiej kolizji proszę doprecyzować wzorzec.
Opcje dodatkowe
--no-if-modified-since, wyłącza sprawdzanie nagłówka If-Modified-Since. Włączam tę flagę tylko wtedy, gdy serwer wyraźnie skarży się w logach. Jeśli nie planują Państwo ponownego uruchomienia w tym samym folderze w celu przechwycenia zmian, opcja nie jest krytyczna.
--no-check-certificate, pomija weryfikację certyfikatów SSL. Podczas tworzenia kopii lustrzanej nie wprowadzają Państwo haseł ani nie przesyłają poufnych danych, dlatego ścisła kontrola certyfikatu jest zbędna. Flaga oszczędza nerwów na stronach z przeterminowanym lub samopodpisanym certyfikatem.
--user-agent, podmienia User-Agent przeglądarki. Niektóre serwery wykrywają Wget i blokują żądania. Spoofing na zwykłego Chrome rozwiązuje problem:
1 --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
Jeśli blokowanie odbywa się po adresie IP, potrzebny będzie VPN i być może rozłożenie pobierania na kilka maszyn. W tym przypadku przydadzą się również opcje --wait i --random-wait w celu spowolnienia tempa żądań.
--restrict-file-names=windows, ogranicza znaki w nazwach plików do zestawu bezpiecznego dla Windows. W Uniksie znaki specjalne w nazwach są dozwolone i archiwum pobrane na maszynie z Linuxem może okazać się nieczytelne w Windows. Jeśli pracują Państwo w Windows, flaga jest stosowana automatycznie; jeśli pobierają Państwo pod Uniksem, ale przeglądać będą na Windows, proszę wskazać jawnie.
--backup-converted, zapisuje oryginalną kopię każdego pliku, w którym Wget wprowadził zmiany podczas konwersji linków. Podwaja rozmiar archiwum. Nie używam, ale wspominam na wypadek, gdyby był Państwu potrzebny backup każdej edycji co do sekundy.
Otwieramy wiersz poleceń w odpowiednim folderze
Wget uruchamia się z terminala, a terminal musi wskazywać na folder, w którym planują Państwo złożyć archiwum. Sposobów jest kilka, od standardowego do zaawansowanych:
Windows + R→cmd→ Enter, następniecd /d C:\путь\к\архиву(flaga/dumożliwia przełączanie się między dyskami)- Jeśli ścieżka zawiera spacje, proszę ująć ją w cudzysłów:
cd /d "C:\My Archive"
Szybciej, jedną linijką: Windows + R → cmd /k "cd /d C:\путь\к\архиву". Flaga /k pozostawia okno otwarte po wykonaniu polecenia.
Jeśli korzystają Państwo z Total Commandera: Komendy → Uruchom wiersz poleceń otwiera terminal od razu w bieżącym folderze. Dla Eksploratora istnieje poprawka rejestru, która dodaje opcję „Otwórz okno poleceń tutaj" w menu kontekstowym.
Uruchamiamy pobieranie: pełne polecenie
Zbieramy wszystko razem. Oto polecenie, którego używam do tworzenia kopii lustrzanej przeciętnej witryny:
1 wget --mirror --page-requisites --convert-links --adjust-extension --compression=auto --reject-regex "/search|/rss" --no-if-modified-since --no-check-certificate --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36" https://example.com
To samo można zapisać krótkimi flagami: wget -mkp -E --compression=auto -R "/search|/rss" .... Ale długie nazwy czynią polecenie samodokumentującym się. Po miesiącu otworzą Państwo swój plik .bat i od razu zrozumieją, co robi każda opcja.
Proszę podstawić zamiast https://example.com rzeczywisty adres URL docelowej witryny i nacisnąć Enter. Proces może trwać od kilku minut do kilku godzin, w zależności od rozmiaru witryny i ograniczeń serwera.
Postprocessing: grepWin i typowe poprawki
Po pobraniu archiwum prawie zawsze wymaga dopracowania. Narzędzie grepWin, szwajcarski nóż do wsadowego wyszukiwania i zamiany w plikach tekstowych pod Windows. Oto kilka typowych scenariuszy:
Usuwanie śmieciowych tagów w HTML. Niektóre silniki generują puste tagi
<source>, które przeszkadzają w renderowaniu. W grepWin proszę wybrać wyszukiwanie według wyrażenia regularnego<source media=".*">, wskazać maskę*.htmli zastąpić pustym ciągiem.Poprawianie ścieżek do zasobów. Jeśli jakieś ścieżki pozostały bezwzględne, grepWin znajdzie je według wzorca w rodzaju
src="https://example.com/i zastąpi lokalnym odpowiednikiem.

To tylko przynęta, każda witryna ma swoje niespodzianki. Mocne strony grepWin: natychmiastowy podgląd przed zamianą, praca rekurencyjna na folderach i obsługa wyrażeń regularnych. Kiedy jednak zakres poprawek wykracza poza „znajdź i zamień", uniksowy zestaw narzędzi w rodzaju sed i grep daje znacznie więcej elastyczności. Wersje dla Windows są dostępne przez WSL lub Cygwin.
Alternatywa: pobieranie z listy URL bez rekurencji
Rekurencyjne przechodzenie nie zawsze jest odpowiednie. Jeśli witryna jest ogromna, a Państwu potrzebny jest tylko konkretny wybór stron, prościej przygotować listę URL i podać ją Wget przez --input-file:
1 wget --input-file=links.txt --page-requisites --convert-links --adjust-extension --compression=auto --no-if-modified-since --no-check-certificate --user-agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
Proszę zwrócić uwagę: --mirror i --reject-regex zostały usunięte, rekurencja nie jest potrzebna, a listę URL kontrolują Państwo samodzielnie.
Jak zebrać taką listę? Jeden ze sposobów, rozszerzone wyszukiwanie Google: zapytanie site:yoursite.com "ключевая фраза" zwróci zaindeksowane strony na dany temat. Proszę ustawić wyniki na 100, uzbroić się w rozszerzenie Copy Links do Chrome i kopiować URL partiami do pliku links.txt.
Wideo: tworzenie kopii lustrzanej witryny w 5 minut
Aby zobaczyć cały proces na żywo, od instalacji po gotowe archiwum, proszę obejrzeć ten screencast:
Autor przechodzi ścieżkę od zera: pobranie Wget, skonfigurowanie opcji, uruchomienie polecenia i otwarcie wyniku w przeglądarce. Polecam przed pierwszym własnym przebiegiem, 7 minut czasu ekranowego zaoszczędzi godzinę debugowania.
⁉️🤔 Często zadawane pytania
Czy można odtworzyć witrynę z archiwum Wget?
Archiwum Wget to statyczny zrzut: HTML, CSS, JS i pliki multimedialne. Nie ma w nim ani bazy danych, ani logiki serwerowej. Nie wgra Pan takiej kopii na hosting i nie ożywi WordPressa z komentarzami i panelem administracyjnym. To narzędzie do zachowania treści, a nie do tworzenia kopii zapasowych. Do pełnego backupu WordPressa proszę używać wtyczek takich jak UpdraftPlus lub Duplicator, one zapisują zarówno pliki, jak i bazę danych.
Wget pobiera zbyt dużo niepotrzebnych rzeczy. Jak to ograniczyć?
Kombinacja
--reject-regex(filtr URL według wzorca) i--reject(filtr według rozszerzeń plików) rozwiązuje problem. Na przykład, dodając--reject=jpg,png,gif, zrezygnuje Pan ze wszystkich obrazów. Albo--reject-regex "/tag/|/category/|/page/"odetnie archiwa tagów, kategorii i paginację. Najważniejsze: proszę testować na małym podzbiorze stron przed pełnym przebiegiem.
Serwer zablokował mój adres IP po rozpoczęciu pobierania. Co robić?
Wget może zostać wykryty po User-Agent lub tempie żądań. Trzy poziomy ochrony: spoofing User-Agent przez
--user-agent(pokazałem wyżej), spowolnienie przez--wait=1 --random-wait(pauza 1 sekunda plus losowy dodatek) i zmiana IP przez VPN. W przypadku dużych witryn można podzielić pobieranie: przygotować kilka list URL i uruchomić Wget równolegle z różnych maszyn lub punktów VPN.
Czym Wget jest lepszy od rozszerzeń przeglądarkowych do zapisywania stron?
Rozszerzenia takie jak SingleFile zapisują jedną stronę. Wget tworzy pełne lustro witryny, z przejściami, paginacją i wszystkimi wewnętrznymi linkami. Dla bloga z 500 artykułami rozszerzenie przeglądarkowe wymagałoby 500 ręcznych kliknięć. Wget robi to jednym poleceniem. Ponadto rozszerzenie przeglądarkowe nie konwertuje linków do lokalnej nawigacji, otrzyma Pan 500 izolowanych plików bez powiązań między sobą.
Archiwum waży gigabajty. Jak je skompresować i przechowywać?
Folder z tysiącami małych plików jest niewygodny do przenoszenia, backupu i skanowania antywirusowego. Pakuję takie archiwa do RAR metodą „Store" lub „Fastest", szybkość jest ważniejsza niż stopień kompresji, bo HTML i multimedia są już skompresowane. Obowiązkowo dodaję rekord naprawczy (recovery record), to ratuje przy uszkodzonych sektorach na dysku lub błędach transmisji. Rezultat: jeden plik, który kopiuje się w kilka sekund i nie rozpada się podczas przechowywania.
Pobierać czy nie pobierać: kiedy Wget jest wart wysiłku
Wget to nie narzędzie na co dzień. To instrument do konkretnego zadania: uzyskania pełnej statycznej kopii witryny, która jest Panu droga lub użyteczna. Gdy istnieje ryzyko, że zasób zniknie, proszę sięgać po Wget. Gdy czeka Pana praca offline, proszę sięgać po Wget. Gdy trzeba zachować „cyfrową skamielinę" epoki Geocities, tym bardziej.
Do pojedynczych stron wystarczy rozszerzenie przeglądarkowe. Do pełnego backupu WordPress proszę wziąć wtyczkę do tworzenia kopii zapasowych. Ale gdy potrzebne jest właśnie autonomiczne, nawigowalne archiwum całej witryny, Wget praktycznie nie ma alternatyw, a teraz wie Pan, jak uruchomić go na Windows bez zbędnych kłopotów.
Proszę spróbować na małej witrynie znajomego lub na własnym blogu. Pierwszy przebieg wiele wyjaśni, a drugi pójdzie już jak po sznurku. I proszę nie zapomnieć o rekordzie naprawczym w archiwum, niech Pana kolekcja przetrwa każdy dysk twardy.



