2013-06-27 12 views
8

Próbuję zaindeksować wszystkie linki pliku sitemap.xml, aby ponownie zapisać w pamięci podręcznej witrynę. Ale opcja rekurencyjna wget nie działa, otrzymuję tylko odpowiedź:łącza indeksujące polecenia sitemap.xml do polecenia wget:

Plik zdalny istnieje, ale nie zawiera linku - nieodtwarzany.

Ale na pewno plik sitemap.xml jest pełen linków "http: // ...".

Próbowałem niemal każdą opcję wget, ale nic nie działało dla mnie:

wget -r --mirror http://mysite.com/sitemap.xml 

Czy ktoś wie jak otworzyć wszystkie linki wewnątrz strony sitemap.xml?

Dzięki Dominic

Odpowiedz

10

Wydaje się, że wget nie można analizować XML. Musisz więc ręcznie wyodrębnić linki. Możesz zrobić coś takiego:

wget --quiet http://www.mysite.com/sitemap.xml --output-document - | egrep -o "https?://[^<]+" | wget -i - 

Nauczyłem się tej sztuczki here.

+1

Jak ustawić każdą pobraną nazwę pliku html na tytuł strony? W tej chwili wszystko jest po prostu index.html, index.html.1, index.html.2 itp. – user2028856

+0

chciałbym zobaczyć opracowanie na ten temat, że kont dla wielu dzieci w strukturze pliku xml ... ktoś? To jest miłe! Dziękuję Ci! – lcm

+0

Mam mapę witryny w formacie gz, jak mam odwiedzać adresy URL z tego. – StarWars