4

Я получил книгу, которая имела пропуск для доступа к цифровым версиям сканов в высоком разрешении большинства произведений искусства в книге. Удивительно! К сожалению, презентация всех этих 177 страниц по 8 изображений каждая со ссылками на zip-файлы jpgs. Это чрезвычайно утомительно для просмотра, и я хотел бы иметь возможность получить все файлы одновременно, а не сидеть и просматривать каждый из них в отдельности.

имя_архива /index.1.htm - имя_архива /index.177.htm каждая из этих страниц имеет по 8 ссылок на файлы

ссылки на файлы, такие как <snip>/downloads/_Q6Q9265.jpg.zip , <snip>/downloads/_Q6Q7069.jpg.zip , <snip>/downloads/_Q6Q5354.jpg.zip . это не совсем в порядке. Я не могу получить список каталогов родительской /downloads/ папки.

Кроме того, файл находится за стеной входа в систему, поэтому создание инструмента без браузера может оказаться затруднительным, если вы не знаете, как воссоздать информацию о сеансе.

Я немного заглянул в wget, но я немного запутался и понятия не имею, поможет ли это мне в этом. Любой совет о том, как справиться с этим? Может ли wget сделать это для меня автоматически?

3 ответа3

2

Использование Python может быть проще. Так что это решение с использованием Python. Если Python не подходит для вас, игнорируйте. :)

Я предполагаю, что просмотр сайта законен.

Напишите простой сценарий Python, чтобы просмотреть цикл archive_bookname/index.1-177.htm , очистить их с помощью BeautifulSoup , найти ссылки с помощью либо селекторов класса css, либо простого сопоставления с регулярным выражением, а затем использовать urllib.urlretrieve() для получения файлов. Вот как я это сделаю.

2

Вы можете указать входной HTML-файл с

wget -F -i <file>

так что вы можете просто сбросить HTML-файлы и перебрать их
(Я добавил базовый URL для относительных ссылок):

for i in <whereYouDumpedFiles>/*.html
do
  wget -F -B <base-url> -i $i
done

альтернативно

Вы можете просто сбросить ссылки на файл (разделенный символом новой строки) любым способом и сделать это:

wget -i <url-file>

хороший способ получить по этим ссылкам будет:

lynx -hiddenlinks=ignore -nonumbers -listonly --dump <relevant-url> \
 | sort | uniq | sed /<regexp-pattern-of-urls-you-want>/\!d

возможно, в цикле, который добавляет к «url-файл»

0

Или вы можете просто использовать Perl и его замечательный модуль www::mechanize. Очень просто собрать что-то вместе, и есть множество примеров в официальной документации CPAN.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .