
웹 서핑을 하다 보면 한 페이지에 이미지가 가득한 경우를 종종 만나게 됩니다. 마우스 오른쪽 버튼으로 하나하나 저장하는 방식은 이미지가 5~10개 정도일 때는 견딜 만하지만, 25개, 50개, 심지어 100개라면 이야기가 달라집니다. 웹 페이지의 모든 이미지를 손쉽게 한꺼번에 내려받을 수 있는 방법이 있다면 얼마나 좋을까요?
물론 방법이 있습니다. 이 글에서는 맥에서 단 3개의 액션으로 구성된 간단한 Automator(오토메이터) 스크립트를 만들어, 현재 사파리(Safari)에서 열려 있는 웹 페이지의 모든 이미지를 자동으로 감지해 바탕화면 폴더에 저장하는 방법을 소개합니다.
참고: 파이어폭스(Firefox) 사용자라면 별도의 전용 안내 문서를 참고하시기 바랍니다.
Automator로 웹 페이지 이미지 전체 다운로드하기
Automator는 맥에 기본 탑재된 강력한 도구임에도 불구하고 실제로 활용하는 사용자는 많지 않습니다. 하지만 사용법이 쉽고 기능이 뛰어나기 때문에 꼭 익혀둘 가치가 충분합니다. 반복적인 작업을 대량으로 자동화할 수 있으며, 시스템의 거의 모든 영역에 접근할 수 있습니다. 이미지 파일을 JPG로 일괄 변환하거나, 사운드 파일의 포맷을 변환하거나, 숨김 파일 표시를 켜고 끄는 작업까지 가능합니다.
또한 Automator는 사파리와 깊이 연동되어 있어, 평소에는 불가능해 보이는 웹 페이지 관련 작업들도 처리할 수 있다는 사실은 의외로 잘 알려져 있지 않습니다.
현재 웹 페이지의 이미지를 자동으로 가져오는 것은 단 세 개의 액션만으로 구성된 간단한 스크립트면 충분합니다. 완성된 결과물은 바탕화면에서 실행하는 앱으로 만들 수도 있고, 독(Dock)에서 실행하거나 메뉴 막대에서 동작하는 서비스, 심지어 폴더 액션으로도 활용할 수 있습니다. 여기서는 앱 형태로 만들어 보겠습니다. 다른 방식도 직접 실험해 보시기 바랍니다.
워크플로우 작성하기
새로운 Automator 워크플로우를 열고, 워크플로우 유형으로 '애플리케이션(App)'을 선택합니다.

왼쪽 액션 목록에서 '인터넷' 카테고리를 선택한 뒤, 사파리 액션 중 '현재 웹 페이지 가져오기(Get Current Webpage)'를 찾아 워크플로우에 추가합니다.

같은 인터넷 액션 목록에서 '웹 페이지 내용 가져오기(Get Contents of Web Pages)'를 추가합니다. 이 액션은 현재 웹 페이지의 내용을 웹 아카이브(Web Archive) 형태로 메모리에 불러오며, 이후 단계의 액션이 이 데이터를 처리할 수 있게 됩니다.

마지막으로 '웹 콘텐츠에서 이미지 저장하기(Save Images From Web Content)' 액션을 추가합니다. 이 액션은 이전 단계에서 생성된 웹 아카이브를 분석해 이미지 파일만 골라내고, 지정된 방식에 따라 특정 폴더에 저장하거나 URL 기반으로 저장합니다.

여기서 'URL을 폴더 이름으로 사용(Use URLs as folder names)'과 '기존 폴더 대체(Replacing Existing Folders)' 옵션에 체크합니다. 그러면 바탕화면에 웹사이트 URL을 이름으로 하는 폴더가 생성되어 사이트별로 폴더가 자연스럽게 구분됩니다. 같은 이름의 폴더가 이미 존재하면 오류를 내며 작업을 중단하는 대신 기존 폴더를 덮어씁니다. 다소 투박한 방식이지만 조금만 손보면 더 정교하게 개선할 수 있습니다.
완성된 앱을 원하는 위치에 저장합니다.
앱 실행하기
다른 앱과 마찬가지로 앱을 실행하면 됩니다. 단, 캡처하려는 페이지가 사파리의 현재 탭으로 열려 있어야 한다는 점에 유의하세요. 참고로 사파리 창이 최소화되어 있어도 정상적으로 작동합니다.
앱은 바탕화면에서 바로 실행해도 되고, 응용 프로그램 폴더에 넣어둔 뒤 독의 바로 가기를 통해 실행해도 무방합니다.
앱을 실행하면 바탕화면에 URL 이름으로 된 폴더가 생성되고, 그 안에 해당 페이지의 모든 이미지가 저장됩니다.

마무리
이 스크립트에는 몇 가지 한계가 있는데, 조금만 연구하면 스스로 해결할 수 있습니다. 예를 들어 가져올 이미지가 없는 페이지에서는 오류가 발생합니다. 그 점을 제외하면 다소 기본적이긴 해도 실제로 잘 작동합니다.
자동화하고 싶은 작업이 있으신가요? 이 기본 스크립트를 더 발전시켜 보셨나요? 아래 댓글로 의견을 나눠주세요.