Я тут заморочился и написал универсальный граббер контента. Он работает прямо в браузере и умеет тащить картинки, ссылки и RSS. Подробно об этом инструменте я напишу дальше.
Граббер — это программа, которая умеет собирать данные с какого-то внешнего ресурса. Бывает, например, граббер экрана. Это когда программа захватывает то, что выводится на экран (ваш или чей-нибудь). В интернете часто применяются грабберы контента.
Обычно грабберы применяют для небольших задач. Например можно получить прогноз погоды.
Иногда грабберы применяются для дополнительного наполнения сайта. А иногда — даже для основного. Например, этот сайт почти полностью состоит из грабберов. Грабберы собирают данные из твиттера, LastFM и Fromspring.me, оформляют их как нужно и выводят как часть контента сайта.
Иногда грабберы используются для... скажем, не очень красивых поступков. Например, можно написать граббер, который утянет у конкурента (или нескольких) данные и бережно сложит их в вашу базу данных, откуда их можно будет уже брать для собственных нужд. Иногда такое поведение некрасиво, а иногда — очень даже полезно. Например, Яндекс.маркет построен именно на основе грабберов. Правда, владельцы магазинов сами подключаются к этой системе, а не наоборот. Но то, что владельцы все же, подключаются, показывает что сервис полезен и им в том числе.
Но в сторону лирику! Вот есть граббер, зачем он? Что с ним можно делать?
Есть множество развлекательных сайтов в интернете. Некоторые из них более дружественны пользователю, некоторые — нет. Например, сайт может заваливать вас рекламой. Или, например, пытаться защитить расположенные на нем изображения прозрачными слоями сверху. Знакомо вам такое — нажимаете на понравившуюся картинку "Сохранить", а потом обнаруживаете вместо нее какой-нибудь один пиксель и все?
Можно, конечно, вручную полезть в код страницы и посмотреть настоящие адреса изображений, потом скопировать их в адресную строку и надеяться что там не стоит других блокировок. Но это долго и утомительно.
Попробуйте вставить адрес такой страницы в грабер и он выдаст вам адреса нужных картинок списком.
Более того, он покажет вам их и даст скачать. А если вы лентяй, можете просто сохранить страницу грабера и найти в приложенной папке все изображения, которые были на странице в момент сохранения.
Добавим к этому то, что вы можете собрать урлы картинок хоть с сотни страниц. Поле просмотра изображений очищается только по вашей команде. Вы можете выводить и выводить в него новые изображения чтобы потом скачать их разом.
Более того, обычно, когда постят большие наборы картинок, которые лень или неудобно сохранять руками, они имеют похожие имена. И вы можете воспользоваться фильтром результата чтобы оставить только те изображения, которые вам нужны.
Здесь то же самое. Вы можете собирать нужные вам ссылки. И тоже собирать их в коллекции при помощи режима просмотра.
Представьте что вы нашли галерею изображений где все картинки маленькие. Это лишь превью. Нужно кликнуть на каждую чтобы открылось полноразмерное изображение. Такие галереи не редкость в интернете и скачивать их целиком неудобно.
При помощи грабера вы можете прибегнуть к трюку.
Теперь грабер возьмет ссылки из окна результата и отобразит их в области просмтра не как ссылки, а как изображения! Искали ссылки — отобразили картинки. Удобно!
Что такое RSS я уже писал. Если вы этого еще не знаете — целый пласт интернета ускользнул от вас. RSS сильно стандартизованный формат, поэтому грабить и парсить его очень легко. Это я и сделал в своем чудо-граббере.
Вы вводите адрес RSS и нажимаете "Грабить корован". В итоге получаете список ссылок на элементы этого RSS. Эти ссылки вы можете использовать как вам нравится. Например — собрать сборник ссылок на посты разных RSS.
Можно ввести RSS, отфильтровать посты по слову "girl", например. Затем ввести следующий адрес и произвести ту же процедуру. Так можно скопить большую тематическую ленту;)
Я ограничил переключение с формата RSS на формат src. Если вы попытаетесь вывести ссылки как изображения — у вас ничего не получится все равно. Если нужный вам RSS содержит картинки — попробуйте грабить сам RSS, но в режиме src. Если в ленте есть изображения — вы их получите.
Сейчас я расскажу как еще можно использовать чудо-граббер. Одну из хитростей я вам уже поведал. Вы можете искать ссылки, а отображать картинки. Конечно, если вы нашли действительно ссылки на изображения, а не на html-файлы.
Также, вы можете собрать ссылки на изображения вместо самих изображений. Это тоже может быть полезно если вы не хотите загружать все эти изображения сейчас.
Некоторые нехорошие (или хорошие?) админы закрывают доступ к разным сайтам и вы не можете к ним пробиться. Но иногда очень хочется. Например, почитать ЖЖ друзей или почитать башорг.
Вы можете сделать это с помощью этого граббера. Введите адрес RSS и посмотрите все последние посты. Конечно, картинки могут не отобразиться, но текст будет доступен — 100%. Если, конечно, он не отрезается катом.
Например, вы хотите почитать блог Артемия Лебедева. Введите в граббер адрес tema.livejournal.com/data/rss/. Выберите режим RSS и читайте! Подставьте любой другой логин вместо tema и читайте любимые блоги.
Теперь давайте решим задачку посложнее. Вы хотите читать bash.org.ru, но не знаете адрес его RSS. Не беда! Введите bash.org.ru в граббер и выберите режим href. Из результата уберите все, что не подходит под rss. Вот вы и получили ссылку на RSS. Копируем ее в адресную строку граббера и включаем режим RSS. Готово!
К сожалению, грабер не может заходить на страницы, требующие авторизации. Также, он не может заходить на сервисы вроде vkontakte.ru. На таких сайтах стоят сложные системы противодействия роботам, коим граббер и является.
Режим src собирает не совсем адреса картинок, а режим href — не совсем ссылок. Они собирают значения одноименных атрибутов html. Но атрибут src может быть не только у тега img, но и у тега srcipt, например.
Если вас интересует подборка адресов подключенных к странице JS-файлов — распарсите страницу в режиме src и отфильтруйте результат по слову "js".
Если вас интересуют css-файлы — проделайте то же, но для режима href с фильтром по "css".
А вот и нет! Дело в том, что фильтры поддерживают самые настоящие регулярные выражения! Если вы знаете что это такое — вы уже поняли что фильтровать можно очень мощно. Если нет — покажу на примерах.
(jpe?g|png|bmp|gif) — уберет или оставит строки, которые содержат подстроки "jpeg, jpg, png, bmp, gif". Одну или несколько сразу.
(jpe?g|png|bmp|gif)$ — уберет или оставит строки, которые заканчиваются на эти же подстроки
comments?_tag — уберет или оставит строки, которые содержат как "comment_tag", так и "comments_tag".
Уже этого часто достаточно.
В настройках грабера есть чекбокс "только для этого домена". А что делать если хочется получить ссылки только не на этот домен?
Нужно найти все ссылки, а потом отфильтровать по названию домена.
Надеюсь теперь стало понятней как и зачем можно использовать чудо-граббер. Все ваши пожелания и предложения можете отправить мне. А если вам понравилось — можете заказать у меня что-то подобное.