Wget на ссылки без расширений - PullRequest
2 голосов
/ 20 июля 2011

Я тестирую wget на одном из моих сайтов, он структурирован так:

<a href="/stuff/fancy-stub-url">Fancy Stub</a>
<a href="/stuff/more-fancy-seo-link">Seo Link</a>
<a href="/stuff/somethingIdontwant/#blah">Don't Download me</a>

Внутри каждой из этих ссылок есть .png, который я хочу.

wget http://example.com/landing-page \
    --recursive \
    --level=2 \
    --accept '[a-zA-Z-]+',*.png \
    --force-html \
    --base=http://example.com

Причина, по которой я думал, что мне нужно --level=2 с --recursive, заключается в том, что у /more-fancy-seo-link есть файлы .png, поэтому мне нужно будет нажать на них, а затем на файлы .png, содержащиеся в нем. Это неправильно, потому что /more-fancy-seo-link страницы загружаются, а не , потому что они не имеют расширения. Как заставить wget перейти по моим ссылкам SEO, а затем загрузить в них файлы .png?

1 Ответ

1 голос
/ 20 июля 2011

- force-html и --base работают только с опцией -i.

Ваш '* .png' не заключен в кавычки из оболочки, поэтому будет заменен. Вы можете попробовать процитировать его.

wget http://example.com/landing-page \
    --recursive \
    --level=2 \
    --accept '[a-zA-Z-]+,*.png'

Если это не удастся, вы можете попробовать:

wget http://example.com/landing-page -O - | \
    wget -i - \
        --recursive \
        --level=2 \
        --accept '*.png' \
        --force-html \
        --base=http://example.com

Получает файл HTML и передает его во второй экземпляр wget для получения PNG.

...