Как в Mac OS настроить сбор изображений в Web


Представьте себе, что в ходе Web-серфинга вы обнаружили сайт, на котором есть множество изображений, которые вам хотелось бы скачать для себя. Проблема состоит в том, что сайт очень велик, и вы не имеете возможности потратить целый день, раскрывая ссылки одну за другой и копируя изображения на свой жесткий диск. Ну что ж, автоматизация рутинных задач — это одна из целей, с которым создавались компьютеры. Поручите задачу по сбору изображений своему Mac — он отлично сделает это в автоматическом режиме.Как же организовать сбор изображений с Web-сайта с минимальным вмешательством со стороны пользователя? Представьте себе, что вы — профессиональный разведчик, занимающийся, например, промышленным шпионажем. Как было бы удобно собирать изображения с сайта объекта вашей слежки автоматически!

Этот пример может показаться несколько экстремальным — в конце концов, не все из нас — профессиональные шпионы. С другой стороны, многие из нас наталкиваются на Web-альбом или страницу Flickr, которые представляют интерес лично для нас. Когда речь заходит об автоматизации рутинных операций на Mac, наиболее распространенное решение заключается в применении приложения Automator. Как выяснилось, в сборе изображений из Web заинтересованы многие пользователи, поэтому простейший вариант автоматизированной процедуры документооборота (workflow), разработанной специально для этой цели, можно найти среди других образцов встроенных процедур workflow на стартовой странице приложения Automator.

Чтобы запустить пример автоматизированной процедуры документооборота, запустите приложение (Applications → Automator) и в раскрывшемся окне выберите начальную точку Photos and Images. В нижней части окна, в группе опций Get Content form:, выберите опции the Web и Use links on Safari web page when workflow runs (рис. 2.32).

Рис. 2.32. Встроенная автоматизированная процедура документооборота (workflow)
Рис. 2.32. Встроенная автоматизированная процедура документооборота (workflow)

У вас может возникнуть соблазн подумать, что процедура документооборота будет работать так, как заявлено, но этого не произойдет. Если вы запустите эту процедуру, вы не получите изображений — вместо этого вы получите уйму HTML-страниц, а ведь это не входило в ваши цели. Таким образом, встроенная процедура документооборота нуждается в настройке.

В данном случае, конечной целью является сбор изображений, и поэтому результаты следует ограничить исключительно графикой. В левой панели окна приложения Automator выделите опции Internet → Get Image URLs from Webpages, а затем добавьте это действие в состав автоматизированной схемы документооборота сразу же после действия Get Link URLs from Webpages. Как показано на рис. 2.33, теперь исправленная схема документооборота даст желаемый результат.

Рис. 2.33. Исправленная схема документооборота
Рис. 2.33. Исправленная схема документооборота

Исправленный сценарий работает хорошо — он последовательно просматривает сайт страницу за страницей и скачивает с него все изображения, которые встречаются в ходе просмотра. Например, на рис. 2.34 показаны результаты работы этого скрипта над страницей http://www.thinksecret.com14. Как видите, результатом работы этого сценария явилась внушительная подборка графических файлов в форматах JPEG и GIF.


Рис. 2.34. Результаты работы исправленного сценария workflow
Рис. 2.34. Результаты работы исправленного сценария workflow

Сайт Think Secret представлял собой Web-ресурс, специализирующийся на публикации отчетов и разнообразных слухов о корпорации Apple и ее продукции. Само название перефразировало рекламный лозунг, когда-то использовавшийся Apple («Think Different»). Сайт был создан в 1998 году и просуществовал до февраля 2008 г., когда он был официально закрыт в результате судебного преследования со стороны корпорации Apple, которая обвиняла основателей этого сайта в обнародовании конфиденциальной информации. Более подробную информацию можно найти здесь: http://en.wikipedia.org/wiki/Think_Secret.

Применение Automator для этой цели обладает преимуществом понятности и наглядности. Однако у решения на базе Automator есть и недостатки, самым существенным из которых является недостаточная гибкость. Например, если вы примените эту же схему документооборота к галерее изображений сайта Apple Matters, то результат будет не таким, как хотелось бы. Причина этого в том, что действие (action) программы Automator просматривает ссылки только на два уровня вниз. Иными словами, если для раскрытия ссылки требуется более двух щелчков мышью, то операция извлечет только изображения со страниц, связанных со стартовой, но не глубже (рис. 2.35).

Рис. 2.35. Операция извлекла миниатюры, но не полномасштабные изображения
Рис. 2.35. Операция извлекла миниатюры, но не полномасштабные изображения

Программу Automator можно настроить таким образом, чтобы она выполняла поиски с более глубоким уровнем вложенности, однако существует более простое и общее решение для извлечения изображений (или файлов любых других типов) с Web-сайтов. Это решение состоит в использовании утилиты командной строки wget. Команда wget упрощает извлечение информации с Web-сайтов (в данном случае — изображений).

К сожалению, wget не входит в инсталляционный комплект Mac OS X, поэтому перед тем, как приступать к выполнению нашей задачи, необходимо проделать предварительную работу. Приняв решение об установке wget, вам необходимо будет принять несколько принципиальных решений. Во-первых, вы можете скачать последнюю версию программы из Интернета и выполнить сборку самостоятельно.

Это интересный и полезный опыт, особенно если вы сами собираетесь стать программистом. Однако если вам требуется просто выполнить сбор изображений, то старые версии wget справляются с этой задачей нисколько не хуже новейших. Таким образом, если вам нужна готовая сборка wget для Mac OS X, введите в строку адреса вашего браузера адрес для загрузки готовой программы (http://www.statusq.org/images/wget.zip) и сохраните ее на диске.

Программу wget можно установить и через Fink или MacPorts. Для большинства пользователей этот путь будет простейшим, и, к тому же, он откроет пути к еще нескольким хакерским рецептам по использованию командной строки.

Скачав .zip-файл, распакуйте его. В вашем распоряжении окажутся четыре файла. Так как wget представляет собой утилиту командной строки, эти файлы должны размещаться в конкретных папках. Проблема заключается в том, что папки, в которых должны размещаться файлы, являются невидимыми, поэтому вы не можете применить стандартную методологию копирования файлов путем перетаскивания мышью. Следующие команды переместят файлы туда, где они должны располагаться. Команды в листинге приведены в предположении того, что загруженный файл попал в вашу папку Downloads.

12345// Копирование файлов программы wget по папкам, // в которых они должны размещаться$ sudo cp /Users/cks/Downloads/wget/wget /usr/local/bin$ sudo cp /Users/cks/Downloads/wget/wget.1 / usr/local/man/man1$ sudo cp /Users/cks/Downloads/wget/wget rc // usr/local/etc

Вам будет предложено ввести ваш пароль. Перед копированием убедитесь в том, что вы вошли в систему с административными правами. Теперь, когда программа wget установлена, вы можете начать загружать изображения из Интернета с ее помощью. Программа wget представляет собой очень мощное средство, поддерживающее множество разнообразных опций загрузки (чтобы получить дополнительную информацию о доступных вам возможностях, запустите программу Terminal и дайте команду man wget). Что касается загрузки изображений с Web-сайта, то применение программы wget для этой цели исключительно просто. Все, что требуется утилите wget — это URL и тип файла (рис. 2.36). Например, если вы хотите загрузить все файлы формата JPEG с сайта http://www.BrandonBird.com, то командная строка должна выглядеть следующим образом:

Рис. 2.36. Программа wget отлично справляется со своей работой
Рис. 2.36. Программа wget отлично справляется со своей работой

1wget -r -l5 —no-parent -A.jpg http://www.brandonbird.com/paintings.html

В командной строке из только что приведенного примера используются следующие опции:

  • -r — задает для wget опцию рекурсивного поиска;
  • -l5 — указывает количество уровней вложенности ссылок для извлечения. Если вы хотите, чтобы программа wget отслеживала только ссылки с начальной страницы на один уровень вниз, то следует воспользоваться опцией -l1;
  • —no-parent — указывает, чтобы команда wget не возвращалась на начальную станицу при рекурсивной загрузке;
  • -A.jpg — ограничивает извлекаемые файлы только файлами с расширением .jpg, если вы хотите извлечь, например, файлы формата MP3, то следует указать опцию -A.mp3. В этом случае программа wget будет извлекать только файлы, имеющие расширение .mp3.

Программа wget загружает файлы в ваш текущий каталог, поэтому будет неплохой идеей заблаговременно перейти в тот каталог, где вы хотите хранить извлеченные файлы. Например, если вы хотели бы, чтобы все ваши файлы были извлечены в папку на рабочем столе с именем gotpics, то перед запуском команды wget неплохо было бы перейти в эту папку. Чтобы добиться этой цели, дайте следующую команду из командной строки программы Terminal:

1$ cd /Users/cks/Desktop/gotpics

Загрузка файлов конкретного типа — это всего лишь один небольшой пример того, что можно делать с помощью wget. Я настоятельно рекомендую вам не пожалеть времени на внимательное прочтение man-страницы, описывающей программу wget, что позволит узнать об этой программе существенно больше и научиться, например, загружать с ее помощью Web-сайты целиком, а затем воссоздавать их на своем компьютере, а также найти для этой программы еще широкий диапазон областей применения.

Как посмотреть скрыте файлы в MAC OS X

Работоспособность вашего компьютера Mac в существенной степени зависит от файлов, которые при нормальных условиях обычно не отображаются при работе с графическим пользовательским интерфейсом. Преимущество данного подхода заключается в том, что он снижает риск человеческой ошибки. Новичку гораздо сложнее в таких условиях ошибиться и случайно удалить не тот файл. Недостатком же этого подхода является то, что опытные пользователи, хорошо понимающие, что и зачем они делают, должны прибегать к командной строке при выполнении административных операций (например, таких, как установка программ наподобие wget).

Если вы боитесь командной строки, вы можете по-прежнему пользоваться привычным графическим пользовательским интерфейсом, настроив Mac OS X таким образом, чтобы она отображала невидимые файлы и папки. В Интернете можно найти множество утилит, способных перенастроить Mac OS X так, чтобы отображать скрытые файлы и папки через графический пользовательский интерфейс (для этого достаточно выполнить поиск в Google по ключевым словам «show OS X invisibles»). Того же самого результата можно добиться, если выполнить простую одношаговую workflow-процедуру через Automator (Actions → Library → Files & Folders → Show Invisibles). После выполнения этой операции ранее невидимые файлы и папки будут отображаться через GUI, и ими можно будет манипулировать, используя стандартные методы.

Чтобы вновь включить эффект невидимости (в сущности, его не следует и отключать без необходимости, потому что случайное удаление скрытых файлов и папок может привести к проблемам с загрузкой системы), запустите программу Terminal и дайте следующую команду:

1$ defaults write com.apple.finder AppleShowAllFiles NO

После этого перезапустите приложение Finder, дав следующую команду:

1$ killall Finder

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