Видео ролики бесплатно онлайн

Смотреть казахский видео

Официальный сайт itartass-sib 24/7/365

Смотреть видео бесплатно

11.02.10 05:46 leonder

How-to`sКак скачать целиком любой сайт (скрипт siteget)

Мама у меня работает преподавателем в детском кружке, в последнее время увлеклась изготовлением кукол, и в свободное время ищет в Интернете информацию соответствующего характера. Больше всего ей нужны картинки уже готовых кукол, для примеров. Она стала часто попадать на сайты, где есть раздел "каталог", а там бывает достаточно много моделей. Основная проблема в том, что вручную сохранять изображения, например, щелкнув по ним и выбрав в меню пункт "сохранить как..." - крайне неудобно и долго.

Была поставлена и решена задача: быстро скачать все изображения с определенного сайта (или его раздела), которая тут же стала чуть более глобальной - скачать сайт целиком. С помощью google, по этой ссылке я нашел простое и элегантное решение:

Суть:
Создается скрипт (то есть сценарий, небольшая "программа"), который скачивает сайт целиком, используя стандартную, входящую в состав операционной системы программу wget. Сценарий делается исполняемым (изначально это простой текстовый файл), сохраняется в специальное место и в дальнейшем используется.

Расскажу, как это сделал я и рекомендую делать Вам, если у Вас ОС linux, конечно:
  1. Открыл эмулятор терминала.
  2. Выполнил следующую команду, чтобы создать в домашнем каталоге специальный каталог для собственных скриптов.
    mkdir ~/bin
  3. Выполнил следующую команду, чтобы создать новый файл в текстовом редакторе (вместо nano можно вписать другой):
    nano ~/bin/siteget
  4. Вставил туда следующий код, который собственно и будет выполнять всю работу:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #!/bin/bash
    #   siteget - Use wget to retrieve a website
    #
    if [ "$#" -ne "1" ]
    then
       echo "$(basename ${0}) <URL>"
       echo ""
       echo "Скачивает сайт или книгу в Интернете с помощью Wget."
       echo "Сценарий из одной команды, но он использует много опций."
       echo "Принимает одну опцию - URL верхнего уровня."
       exit 1
    fi

    # Пояснения к опциям:
    # --mirror бесконечная рекурсия, то есть wget следует по ссылкам...
    # --convert-links изменение ссылок, адаптация для локального просмотра
    # --no-verbose режим, частично "глушащий" отчётный вывод программы.
    # --no-parent не ходить "вверх по дереву" непонятно,
    # как это сочетается со следующей опцией, но кажется, работет хорошо.
    # --page-requisites "привязывает" картинки для локального просмотра.
    # --user-agent устанавливает строку "user agent", это помогает, когда
    # некоторые сайты возвращают на запрос пустые страницы. Они не любят wget.
    # ЕЩЕ полезные опции:
    # -l для ограничения глубины скачивания  
    # -c -t 0 пригодятся при работе с плохим или ненадёжным соединением.

    wget --mirror --convert-links --no-verbose --no-parent --page-requisites \
       --user-agent="Mozilla/5.0 (compatible; Firefox/3.6; Linux)" ${1}

    Большая часть которого, как видно - комментарии и описание.
  5. Сохранив изменения (ctrl+O в nano) и выйдя из редактора (ctrl+X в nano), выполнил следующую команду в консоли, чтобы сделать скрипт исполняемым:
    chmod a+x ~/bin/siteget
Теперь же, чтобы сохранить на свой диск сайт целиком, достаточно выполнить в консоли этот скрипт. Поскольку у родителей user-friendly KDE4, я научил маму делать это следующим образом (и, на всякий случай, инструкцию написал карандашом на листке):
  1. Скопировать в буфер обмена из адресной строки браузера адрес сайта (его корневую, главную страницу)
  2. Запустить Dolphin (файловый менеджер), войти в специально созданный ранее каталог "Домашняя папка/Загрузки"
  3. Нажать клавишу F4, чтобы вызвать встроенную в Dolphin консоль
  4. Набрать "siteget ", вставить из буфера обмена адрес сайта, нажать [enter]
  5. Дождаться, пока скрипт закончит и сообщит о результатах. В текущем каталоге ("Домашняя папка/Загрузки") будет создан каталог, одноименный с адресом сайта. Чтобы просмотреть локальную копию - следует войти в него и открыть в браузере файл index.html



Shtsh 11.02.10 06:32 # +0
Это, конечно хорошо и подходит для выбранной цели, но такую глобальную задачу как "скачать сайт целиком" не решает - сейчас почти все сайты динамические и html генерируется программами на стороне сервера. И голый php, ruby, perl, python никто вам не выдаст :)
Это я к тому, что название не очень
leonder 11.02.10 08:47 # +2
Если бы я написал, "скачать исходники сайта", то название было бы не очень. А простому пользователю, вроде моей мамы, для которой это делалось, глубоко безразлично, что там на стороне сервера - статичные страницы или динамические страницы, главное чтоб работало.
digiwhite 11.02.10 06:32 # +1
Для некоторых это актуально. Комментарий вот только чего на английском? Я то по английский читаю, а вот некоторые нет :).
leonder 11.02.10 13:52 # +0
Перевел, как мог.
red_dragon 11.02.10 07:21 # +2
Совершенно непонятно зачем вообще этот скрипт, если задача выполняется одной командой. Гораздо правильней в таком случае прописать для неё алиас в ~/.basch.rc, если руками "вломы" каждый раз набирать. И кстати, да. Shtsh прав. Сейчас большинство сайтов динамические...
greatperson 11.02.10 08:52 # +1
Не совсем понял, что мешает использовать WebHTTrack? Отлично скачивает сайты целиком.

А вот как настроить так, чтобы скачивался только определённый раздел сайта (например, отдельная статья с Хабра плюс все странички-примеры по ссылкам, но НЕ весь Хабр) - я так и не разобрался. :-(
f_evgeny 11.02.10 11:12 # +0
Так no-parents этого не делает?
Или может покомбинировать ключи
-r (рекурсивно)
и
-l (максимальный уровень рекурсии)
leonder 11.02.10 08:54 # +0
Иногда хочется скачать, например. только картинки с сайта, причем превышающие заданный размер. Как такое реализовать? Или наоборот, проигнорировать типы файлов при скачивании или еще какие-то критерии. В общем, фильтры наложить. Есть соображения?
f_evgeny 11.02.10 11:06 # +2
Это нужно читать man wget:

Recursive Accept/Reject Options
-A acclist --accept acclist
-R rejlist --reject rejlist
Specify comma-separated lists of file name suffixes or patterns to accept or reject. Note that if any of the wildcard characters, *, ?, [ or ], appear in an element of acclist or rejlist, it
will be treated as a pattern, rather than a suffix.
f_evgeny 11.02.10 11:10 # +1
Пример:
wget -r --accept=jpg,jpeg www.xyz.org

Только нужно уровень рекурсии ограничить, например:
wget -l 5 -r --accept=jpg,jpeg www.xyz.org

%username% love BDSM!

%username% love BDSM!

leonder 11.02.10 10:48 # +0
sudo не нужно, всё ведь в пользовательском окружении, а с /usr/bin ошибся. Оригинал заметки был как бы многопользовательский, поэтому с sudo и в /usr/bin. Не всё заметил при редактировании, спасибо.

%username% love BDSM!

divius 11.02.10 10:38 # +3
Я когда-то делал резервную копию ЖЖ:
wget -nc -r -k -p -X2007,2008,2009,data,tag,2010 -R"index.html*tag*,*reply*,*thread*" --no-parent http://***.livejournal.com
Sokoloff 11.02.10 15:24 # +0
Так держать.
Можно еще облегчить маме жизнь, сделать процесс более GUI-шным.

1 вариант. Создать действие в klipper. Вот нашел статью для 3-х кед, но идея думаю будет понятна.

2 вариант. Использовать kdialog, и опционально xclip.

Sokoloff 11.02.10 16:03 # +1
Еще, если мама смотрит страницы в konqueror-е, то можно добавить пункт в выпадающее меню.

Создай файл ~/.kde/share/kde4/services/ServiceMenus/downloadall.desktop
1
2
3
4
5
6
7
8
9
10
11
12
[Desktop Action downloadAll]
Exec=~/bin/siteget %u
Name=Download site
Name[ru]=Сохранить весь сайт
Icon=download

[Desktop Entry]
Actions=downloadAll;
ServiceTypes=all/allfiles
Type=Service
X-KDE-ServiceTypes=KonqPopupMenu/Plugin,
 


Теперь если в конке кликнуть правой кнопкой по ссылке, выпадет меню и в подменю "Действия" появиться пункт "Сохранить весь сайт".
К сожалению я не знаю какой ServiceTypes соответствует url-ам(кто знает поправьте), поэтому указал все.
leonder 11.02.10 16:26 # +0
Браузер там - Iceweasel (ну, считай Firefox), поэтому - это не к моей маме.

ScrapBook и иже - тоже стороной. Человек в возрасте и предпочитает инструкции (скрипты;-), написанные от руки, сама себе "шпаргалки" пишет по использованию программ. Я, перед тем как в другой город уехать, снабдил такими бумажками, как мог. Порядок действий для выполнения определенных задач в GIMP, OOWriter, Dolphin, KDE в целом... Интерфейс даже самой простой но новой(!) программы по-умолчанию отпугивает. Лучше уж инструкции.

Посты Комментарии
Последние посты
    Посты Комментарии
    Последние комментарии
      Посты Комментарии
      Изменения
        Посты Комментарии Изменения Черновики Избранное
        Черновики (все)
          Посты Комментарии Изменения Черновики Избранное
          Избранное (всё)
            Посты Комментарии Изменения Черновики Избранное
            Лучшие блоги (все 164)
            Топ пользователей Топ блогов
            Топ пользователей Топ блогов
            Элита (все 3381 из 238 городов)
            Топ пользователей Топ блогов
            welinux.ru
            Конкурс американская рулетка в интернет казино

            Смотреть онлайн бесплатно

            Онлайн видео бесплатно


            Смотреть русское с разговорами видео

            Online video HD

            Видео скачать на телефон

            Русские фильмы бесплатно

            Full HD video online

            Смотреть видео онлайн

            Смотреть HD видео бесплатно

            School смотреть онлайн