2017-02-02 10 views
0

Я пытаюсь найти способ сделать эти работы вместе. В то время как я могу запустить этот успешно используя Wget для Windows:Объединить эти команды wget & egrep для рекурсивной загрузки файла Sitemap

wget --html-extension -r http://www.sitename.com 

это загружает каждый файл на моем сервере, каталог ссылок с корневого домена. Я бы предпочел загружать только страницы в моей карте сайта. Для этого, я нашел следующий трюк, который использует Cygwin:

wget --quiet https://www.sitename.com/sitemap.xml --output-document - | egrep -o 
"http://www\.sitename\.com[^<]+" | wget --spider -i - --wait 1 

Однако это только проверка, что страницы существуют, не загружая их как статические HTML-файлы, как команда перед Wget делает.

Есть ли способ объединить их и загрузить страницы сайта Sitemap в виде локальных файлов html?

ответ

0

Если посмотреть на странице человека для wget, вы увидите, что --spider запись выглядит следующим образом:

--spider 
     When invoked with this option, Wget will behave as a Web spider, which means that it will not download the pages, just check that they are there. 

Все, что вам нужно сделать, чтобы фактически загрузить файл, это удалить --spider из вашей команды.

wget --quiet https://www.sitename.com/sitemap.xml --output-document - | egrep -o \ 
"https?://www\.sitename\.com[^<]+" | wget -i - --wait 1 
+0

Я пробовал буквально все, кроме этого, спасибо! Сегодня будет тестировать этот метод. Есть ли причина, по которой вы добавили "?" в шаблоне egrep https? – Whitesky

+0

@Whitesky, когда я тестировал команду, я столкнулся с некоторыми проблемами, когда сайты не сохраняли последовательную схему 'http: //' или 'https: //', поэтому я добавил 's?', Что означает ' s' является необязательным. – okulkarni

 Смежные вопросы

  • Нет связанных вопросов^_^