Chciałbym pobrać lokalną kopię strony internetowej i uzyskać wszystkie css, obrazy, javascript itp.
W poprzednich dyskusjach (np. Tu i tutaj , które mają więcej niż dwa lata), generalnie wysuwa się dwie sugestie: wget -p
i httrack . Jednak oba te sugestie zawodzą. Byłbym bardzo wdzięczny za pomoc w korzystaniu z jednego z tych narzędzi do wykonania zadania; alternatywy są również piękne.
Opcja 1: wget -p
wget -p
pomyślnie pobiera wszystkie wymagania wstępne strony internetowej (css, obrazy, js). Jednak gdy ładuję kopię lokalną w przeglądarce internetowej, strona nie może załadować wymagań wstępnych, ponieważ ścieżki do tych wymagań wstępnych nie zostały zmodyfikowane z wersji w Internecie.
Na przykład:
- W html strony
<link rel="stylesheet href="https://stackoverflow.com/stylesheets/foo.css" />
należy go poprawić, aby wskazywał na nową ścieżkę względnąfoo.css
- W pliku css
background-image: url(/images/bar.png)
będzie podobnie trzeba dostosować.
Czy istnieje sposób na modyfikację, wget -p
aby ścieżki były poprawne?
Opcja 2: httrack
httrack
wydaje się świetnym narzędziem do tworzenia kopii lustrzanych całych stron internetowych, ale nie jest dla mnie jasne, jak używać go do tworzenia lokalnej kopii pojedynczej strony. Na forach httrack jest wiele dyskusji na ten temat (np. Tutaj ), ale wydaje się, że nikt nie ma kuloodpornego rozwiązania.
Opcja 3: inne narzędzie?
Niektórzy sugerują płatne narzędzia, ale po prostu nie mogę uwierzyć, że nie ma tam darmowego rozwiązania.
źródło
wget -E -H -k -K -p http://example.com
- tylko to zadziałało dla mnie.wget --random-wait -r -p -e robots=off -U mozilla http://www.example.com
Odpowiedzi:
wget potrafi robić to, o co prosisz. Spróbuj wykonać następujące czynności:
-p
Będzie Ci wszystkie niezbędne elementy do prawidłowego wyświetlania strony (CSS, obrazów, itp).-k
Zmieni wszystkie linki (w tym tych, dla CSS i obrazów), co pozwala, aby wyświetlić stronę w trybie offline, jak wyglądał w Internecie.Z dokumentów Wget:
źródło
index.html#link-to-element-on-same-page
przestały działać.-U 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070802 SeaMonkey/1.1.4'
-H, --span-hosts