Jak zapisać wszystkie strony połączone z jednej strony

15

Chciałbym zapisać tę stronę i wszystkie strony, do których prowadzi. i mam nadzieję na takie samo połączenie między zapisanymi stronami internetowymi.

Czy istnieją jakieś sposoby zamiast otwierania i zapisywania każdej połączonej strony?

Tim
źródło

Odpowiedzi:

12

Możesz robić, co chcesz, za pomocą narzędzia wiersza polecenia wget . Jeśli podasz tę -ropcję, będzie rekurencyjnie pobierać strony internetowe. Na przykład:

wget -r http://mat.gsia.cmu.edu/orclass/integer/integer.html

Spowoduje to pobranie tej strony i wszystkiego, do czego prowadzi. Możesz także sprawić, by powtarzała się tylko pewna liczba poziomów, aby to zrobić, wystarczy podać -rliczbę. Podobnie jak:

wget -r 5 http://mat.gsia.cmu.edu/orclass/integer/integer.html
Wuffers
źródło
@Mark: Dzięki! Teraz próbuję pobrać mat.gsia.cmu.edu/orclass i strony, do których prowadzi łącze, za pomocą polecenia wget -r mat.gsia.cmu.edu/orclass . wget utworzy katalog mat.gsia.cmu.edu pod podanym przeze mnie katalogiem i ściągnie pod nim strony. Ale łącza między pobranymi stronami nie mają na swoich ścieżkach mat.gsia.cmu.edu, więc staje się to problemem i nie mogę przejść z jednej strony na drugą, klikając linki. Zastanawiałem się, dlaczego i jak rozwiązać problem? Dzięki!
Tim
Nie sądzę, że można rekurencyjnie pobierać linki zewnętrzne @Tim.
Wuffers,
Czy „linki zewnętrzne” oznaczają te, które nie znajdują się w bieżącej ścieżce?
Tim
@Tim: Przez linki zewnętrzne rozumiem linki, które odsyłają poza mat.gsi.cmu.edu
Wuffers
1
@Tim: Oh, ok. Przepraszam za nieporozumienie. Myślę, że możesz spróbować samodzielnie edytować pliki HTML, aby sprawdzić i spróbować je uruchomić.
Wuffers,
11

Ten wątek jest już stary, ale inni mogą na to spojrzeć. Dziękuję Wuffers za skierowanie mnie we właściwym kierunku, ale aby rozwinąć odpowiedź Wuffersa: Nowoczesna wersja wget ma wiele przydatnych opcji rekursywnych linków i łatania ich tak, aby były lokalnymi względnymi linkami, aby można było nawigować po lokalnej kopii strony internetowej. Użyj opcji -r, aby rekurować, opcji -k, aby załatać lokalne łącza, opcji -H, aby przejść do domen innych niż pierwotna, opcji -D, aby ograniczyć domeny, do których przechodzisz, opcji -l, aby ograniczyć głębokość rekurencji i opcję -p, aby upewnić się, że liście twojego przejścia mają wszystko, czego potrzebują do prawidłowego wyświetlania. Na przykład poniższy plik pobierze stronę i wszystko, do czego natychmiast prowadzi link, dzięki czemu można ją lokalnie przeglądać,

wget -r -l 1 -p -k -H -D domain.com,relateddomain.com http://domain.com/page/in/domain

Korzystając z polecenia podobnego do powyższego, mogłem pobrać fragment strony wiki z zewnętrznymi linkami na mój dysk lokalny bez pobierania megabajtów obcych danych. Teraz, gdy otwieram stronę główną w przeglądarce, mogę nawigować po drzewie bez połączenia z Internetem. Jedynym drażniącym było to, że strona główna została pochowana w podkatalogach i musiałem utworzyć stronę przekierowania najwyższego poziomu, aby ułatwić wyświetlanie. Prawidłowe wykonanie tej czynności może wymagać prób i błędów. Przeczytaj stronę podręcznika użytkownika wget i eksperymentuj.

Pablo Halpern
źródło
4

Możesz użyć przeszukiwacza witryny, takiego jak httrack , który jest bezpłatny.

Ze strony internetowej;

[httrack] umożliwia pobranie witryny sieci Web z Internetu do katalogu lokalnego, tworzenie rekursywnie wszystkich katalogów, pobieranie HTML, obrazów i innych plików z serwera na komputer. HTTrack porządkuje względną strukturę linków oryginalnej strony. Wystarczy otworzyć stronę „lustrzanej” strony w przeglądarce i możesz przeglądać stronę od linku do linku, tak jakbyś oglądał ją online.

RJFalconer
źródło
1
+1 Doskonała aplikacja! Ale pobiera również wszystkie połączone pliki zip, których nie chciałem. Ale prawdopodobnie powinienem najpierw przeczytać instrukcje!
finlaybob
Tak, może / będzie podążał za wszystkimi linkami, więc pobierze pliki. (@Finlaybob, czy wiesz, że strona domowa wymieniona w Twoim profilu została zhakowana?)
RJFalconer
Nie byłem! Zajmę się tym - dziękuję za informację!
finlaybob