Сентябрь 2017

Этот курс закончился

Cписок курсов

Домашнее задание. Скрэппер для flickr

9 сентября 2017

Собрать изображения заданной тематики с сайта flickr.com.

Исходные данные

Flickr — это хранилище изображений. На этом сайте можно искать изображения по ключевым словам. Адрес страницы поиска вот такой:

https://www.flickr.com/search/?text=что-искать

Например, найдём фотографии кошек:

https://www.flickr.com/search/?text=cats

Пробелы в поисковом запросе следует заменять на символ +:

https://www.flickr.com/search/?text=fat+cats

На странице результатов поиска показываются первые несколько фотографий. Каждая такая фотография заключена в тег <div>, который можно отличить по наличию класса "photo-list-photo-view". При этом flickr использует хитрость: фотография задана как фоновое изображение элемента <div>, а не с помощью тега <img>. Однако это нам не должно помешать: ссылку на файл фотографии можно извлечь из значения атрибута style, который выглядит как-то так:

<div class="... photo-list-photo-view ..." ... style="transform: translate(0px, 0px); 
     -webkit-transform: translate(0px, 0px); -ms-transform: translate(0px, 0px); 
     width: 244px; height: 180px; 
     background-image: url(//c6.staticflickr.com/4/3677/13545844805_170ec3746b_n.jpg)">

Извлечь вот эту ссылку на изображение: //c6.staticflickr.com/4/3677/13545844805_170ec3746b_n.jpg с помощью регулярного выражения не составит труда.

Задача

С помощью библиотек requests и Beautiful Soup найти на сайте flickr набор изображений по некоторому поисковому запросу. Сохранить файлы этих изображений в текущий каталог.

Замечания

  1. Не забудьте добавить протокол "https:" к ссылке на изображение перед тем, как запрашивать его с помощью requests: https://c6.staticflickr.com/4/3677/13545844805_170ec3746b_n.jpg
  2. Сохранять файлы можно с произвольными именами (result1.jpg, result2.jpg и т.п.), но расширение файла должно быть таким же, как в ссылке на файл. То есть если ссылка на файл заканчивалась на .jpg, то и имя выходного файла должно заканчиваться на .jpg. Расширение файла теоретически может быть любым: .jpg, .png, .gif и т.д.