Как сделать wget на сайте с косой чертой в конце, и сохранить так же, как без косой черты - PullRequest
2 голосов
/ 10 мая 2011

Я создал сканер с Wget для личного использования.

wget -k -m -Dwww.website.com -r -q -R gif,png,jpg,jpeg,GIF,PNG,JPG,JPEG,js,rss,xml,feed,.tar.gz,.zip,rar,.rar,.php,.txt -t 1 http://www.website.com/ &

Пример URL-адреса публикации на веб-сайте: http://www.website.com/post-one/, у которого каждое сообщение имеет косую черту в конце URL.

После сохранения Wget создаст:

www.website.net/post-one
www.website.net/post-one/index.html

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

Я хочу, чтобы Wget создал www.website.net/post-one post-one, это HTML-файл, а не создалпапка для каждого сообщения.

Я пробовал много способов без удачи.Используйте папку результатов -R .html без содержимого.

1 Ответ

0 голосов
/ 11 мая 2011

Используемый мной wget поддерживает следующие параметры каталогов:

-nd, --no-directories           don't create directories.
-x,  --force-directories        force creation of directories.
-nH, --no-host-directories      don't create host directories.
     --protocol-directories     use protocol name in directories.
-P,  --directory-prefix=PREFIX  save files to PREFIX/...
     --cut-dirs=NUMBER          ignore NUMBER remote directory component

Может быть, -nd ИЛИ -P может помочь вам.

В противном случае сценарий оболочки может легко преобразовать файлы в одинlevel dir после того, как вы загрузили все файлы, используя существующий wget.

#!/bin/bash
cd www.website.net
for d in $( find . -type -d -print ) ; do
   if [[ -f $d/index.html ]] ; then
     echo mv $d/index.html $.html && echo rmdir $d
    fi
done

удалите echo s, если вы уверены, что цикл производит вывод, который будет работать для вас.

Я надеюсь, что это поможет.

PS, поскольку вы выглядите новым пользователем, если вы получаете ответ, который помогает вам, пожалуйста, помните, чтобы пометить его как принятый и / или дать ему + (или -) какполезный ответ.

...