Форум русскоязычного сообщества Ubuntu


За новостями русскоязычного сообщества и Ubuntu в целом можно следить на нашей страничке в Google+

Автор Тема: Простой сценарий  (Прочитано 398 раз)

0 Пользователей и 1 Гость просматривают эту тему.

cinyflo

  • Автор темы
  • Гость
Простой сценарий
« : 13 Январь 2012, 01:22:32 »
Здравствуйте. Ситуация такая: на сайте очень много картинок (от ста и больше), вручную их сохранять и каждую открывать - проще сразу убиться, решил сделать что-то типа скрипта. Все файлы лежат по одному адресу:
http://<адрес_сайта>/img/<трёхзначный_номер_картинки>/wallpaper.jpgСделал огромную команду:
mkdir ~/wallpaper && cd ~/wallpaper && wget http://<адрес_сайта>/img/<первый_номер_картинки>/wallpaper.jpg && mv ~/wallpaper.jpg ~/w01.jpg && wget http://<адрес_сайта>/img/<второй_номер_картинки>/wallpaper.jpg && mv ~/wallpaper.jpg ~/w02.jpg && ......<тут_куча_таких_строк>...... && wget http://<адрес_сайта>/img/<последний_номер_картинки>/wallpaper.jpg && mv ~/wallpaper.jpg ~/w(последний).jpgЗаписал её в блокнот и сделал исполняемым скриптом #!/bin/sh. Хоть это тоже отняло времени, но несравнимо с ручным сохранением. Если бы файлы назывались попроще, типа:
http://<адрес_сайта>/img/wallpaper/<трёхзначный_номер_картинки>.jpgБыла бы "строка" короче наполовину. Скрипт-не скрипт, но своего я добился и счастлив.
Вопрос же такой - как эту же операцию записать короче? Если бы картинок было миллиона три, не писать же их все вручную. Возмущаться не нужно, такие вещи для меня в новинку.

andrey_p

  • Автор темы
  • Гость
Re: Простой сценарий
« Ответ #1 : 13 Январь 2012, 06:03:28 »
???
wget -r http://<адрес_сайта>/img/

cinyflo

  • Автор темы
  • Гость
Re: Простой сценарий
« Ответ #2 : 13 Январь 2012, 09:17:46 »
Ошибка 404. =(

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: Простой сценарий
« Ответ #3 : 13 Январь 2012, 09:49:22 »
Код: Bash
  1. for i in {001..010} ; do wget -cO "$i.jpg" "http://site.name/img/$i/wallpaper.jpg" ; done
« Последнее редактирование: 13 Январь 2012, 09:50:57 от arcfi »

cinyflo

  • Автор темы
  • Гость
Re: Простой сценарий
« Ответ #4 : 13 Январь 2012, 10:03:52 »
#!/bin/bash

mkdir ~/wallpaper && cd ~/wallpaper && for i in {001..100} ; do wget -cO "$i.jpg" "http://<сайт>/img/$i/wallpaper.jpg" ; done
Скачал файлы с 1 по 100 в 0 байт.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: Простой сценарий
« Ответ #5 : 13 Январь 2012, 11:27:37 »
Дело ясное, что дело тёмное.
Без адреса сайта остаётся лишь ждать телепатов.

cinyflo

  • Автор темы
  • Гость
Re: Простой сценарий
« Ответ #6 : 13 Январь 2012, 12:25:10 »
Я не называл сайты чтобы сам принцип узнать, но если это так важно, то вот.
Например выкачать все фотографии с этих сайтов.
http://master-rockgroup.com/photos.htm
http://www.shmely.ru/gall.php
http://www.thepaganfront.com/temnozor/foto.html
http://www.satarial.ru/gallery
Можно ли это сделать чтобы не в одну папку, а по категориям, как там?

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: Простой сценарий
« Ответ #7 : 13 Январь 2012, 12:45:56 »
Общий принцип:
1) парсим страницу с линками на картинки;
2) выковыриваем линки и скачиваем картинки.

Код для каждого ресурса будет разным, иначе скрипт станет слишком сложным.
Разбивка по категориям также усложнит скрипт.

Вот пример несложного скрипта:
(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 13 Январь 2012, 12:47:41 от arcfi »

cinyflo

  • Автор темы
  • Гость
Re: Простой сценарий
« Ответ #8 : 13 Январь 2012, 17:23:28 »
Можете тогда посоветовать русскоязычные ресурсы чтобы мне поучиться этому, как вы написали, или sh, или bash, не особо в этом понимаю пока, что такое парсим например.

Оффлайн ArcFi

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 15194
    • Просмотр профиля
    • aetera.net
Re: Простой сценарий
« Ответ #9 : 13 Январь 2012, 18:26:45 »
Руководства:
1) bash: http://www.opennet.ru/docs/RUS/bash_scripting_guide/
2) sed: http://www.opennet.ru/base/dev/sed1line.txt.html

Парсить - значит автоматически обрабатывать (разбирать) с целью получения нужных данных. Парсить можно выдачу на предмет позиций сайта, можно страницы на предмет нахождения там нужной ссылки и т.п.
« Последнее редактирование: 13 Январь 2012, 18:31:08 от arcfi »

 

Страница сгенерирована за 0.068 секунд. Запросов: 25.