Cкрипт на Python для выгрузки множества фотографий

2 000 руб. за проект
02 апреля 2023, 18:10 • 12 откликов • 151 просмотр
Интересует разработка скрипта на Python по парсингу сайта.
Скрипт должен работать с домашнего компьютера (Python 3.10 и стандартные библиотеки установлены).

Источник: Сайт ЕИСЖС (Дом.РФ), Каталог новостроек.
Все типы проектов: Строящиеся дома, Сданные дома, Проблемные дома
https://наш.дом.рф/сервисы/каталог-новостроек/спис...
Ссылка на отдельную страницу проекта:
https://наш.дом.рф/сервисы/каталог-новостроек/объект/30318, 30318 – ID Проекта.

Техзадание:
По списку ID из файла в формате CSV, delimiter = “\n”
или по диапазону (например Start_ID = 1, END_ID = 10350), прописанному в начале скрипта выполнить действия по списку ниже.
Выбор списка или диапазона регулируется параметром запуска скрипта «–-list» или «--range», возможны другие предложения со стороны исполнителя.

1. Создать в директории с парсером директорию «PICTURES»

2. В папке «PICTURES», для каждого проекта создать «Директорию проекта», номер которой соответствует ID проекта

3. Выгрузить рендер(ы) в «Директорию проекта» в папку «RENDER»

4. Выгрузить фотографии хода строительства в «Директорию проекта» в папку «CONSTRUCTION»:

Для этого в папке «CONSTRUCTION» создать отдельные папки, название которых соответствует дате загрузки фотографий в формате ISO «ГГГГ-MM».
Если номер месяца меньше 10, то ведущий 0 сохраняется в наименовании папки: 2023-01

Изначальная структура выгрузки:
Директория с парсером/«PICTURES»/«ID»/«RENDER»/"файлы с рендерами"/
Директория с парсером/«PICTURES»/«ID»/«CONSTRUCTION»/«ГГГГ-MM»/"файлы с фотографиями"
Директория с парсером/«fail_list.csv»

5. Пути конечных папок выше (из пунктов 1-4) должны быть изменяемы внутри скрипта.
Вначале скрипта прописать переменные с именами папок и/или относительными путями так, чтобы в дальнейшем значения переменных путей можно было легко и понятно изменить на другие.

6. В директории проекта создать csv файл «fail_list.csv», delimiter = “\n”, с перечислением поданных на вход, но не загруженных ID проектов. Очень часто ID проектов меняются, из 51 тыс. ID порядка 18 тыс. не существуют или изменены. Путь и наименование файла прописать в начале скрипта по требованиям аналогично п. 5.

7. Реализовать многопоточность загрузки (до 8 потоков)
Максимальное число потоков обсуждаемо после анализа сайта со стороны исполнителя.

8. Скрипт должен стабильно выгружать данные (в т.ч. при разрыве соединения со стороны сервера) и восстанавливать сессию загрузки.
Таймауты остановки задания по причине разрыва сессии оговариваются отдельно после анализа сайта со стороны исполнителя.

9. Предпочтение отдам исполнителю, который не будет использовать Selenium и CromeDriver, а по JavaScript сайта или иным инструментам сможет найти прямые ссылки на API сайта.
Такой API на ресурсе имеется, по рендерам (из пункта 3 выше) я знаю точно есть.
Но это не обязательное требование, а пожелание, показывающее уровень исполнителя и улучшающее время работы конечного скрипта.

Файлы
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
Выполнением работы доволен.
Исполнитель выполнил всё точно и в срок + учел дополнительные пожелания в процессе.
Рекомендую к сотрудничеству.
~ 1 год назад
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Фрилансер
Понравилось работать. Заказчик дал четкое ТЗ, быстро отвечал на вопросы.
~ 1 год назад