Рубрики
Без рубрики

Автоматизируйте это дерьмо

Ага. Автоматизация-это ключ. Зачем утруждать себя выполнением скучных задач, когда вы можете автоматизировать тяжелую работу+Экономия времени В этом самом первом блоге я поделюсь тем, как я автоматизирую этот процесс

Автор оригинала: third.

Ага. Автоматизация-это ключ. Зачем утруждать себя выполнением скучных задач, если вы можете автоматизировать их? тяжелая работа+экономия времени В этом самом первом блоге я расскажу, как я автоматизирую процесс загрузки обоев с помощью сценариев Bash и некоторых регулярных выражений.

В один прекрасный день я искал минималистские обои для своей элементарной ОС. Вот идет этот сайт https://wallpaperplay.com/ у которого есть какая-то огромная коллекция обоев. Но проблема была в процессе загрузки. Это было похоже:-

  1. Нажмите на кнопку Скачать.
  2. Подождите 5 секунд (таймер).
  3. Нажмите на сгенерированную ссылку.
  4. И, наконец, щелкните правой кнопкой мыши – – – – > Сохранить изображение как.

Я подумал: кто же пройдет эти 4 этапа, чтобы скачать обои? По крайней мере, не я.

Возникает идея автоматизировать этот процесс принятия времени.

Мой подход был таким:-

  1. Проверьте исходный код текущей страницы.
  2. Извлеките из него ссылки на обои.
  3. Сохраните все ссылки в файл.
  4. Передайте файл в качестве аргумента команде wget .

Теперь это был вопрос времени, чтобы преобразовать этот подход в реальный рабочий код.

wget https://wallpaperplay.com/board/minimalist-desktop-wallpapers

Это позволит загрузить и сохранить HTML-файл с именем пути, то есть “минималистский-рабочий стол-обои”.

  1. Извлечение имени файла с помощью регулярного выражения из URL-адреса.

echo “$1” | grep -Eoi ‘board/.*’ | cut -d’/’ -f2

  1. Теперь нам нужно извлечь ссылки из загруженной HTML-страницы с помощью регулярных выражений.

кот “минималистский-рабочий стол-обои” | grep -Eoi ‘]+>’

Это позволит извлечь все HTML-якорные теги, содержащие ссылки. Здесь команда cat используется для считывания данных из файла и выдачи их содержимого в качестве выходных данных. Затем вывод перенаправляется с помощью команды pipe ” ” в команду grep . grep -Eoi ‘]+>’ Это регулярное выражение, которое извлекает якорные теги “”. Это означает “Сопоставить все, что начинается с” “кроме” > “между и до” >E = Extended o = Show only the matched string i = Case insensitive search

  1. Извлеките ссылки из атрибута href.

Это регулярное выражение извлекает значение атрибута href .Это означает “Сопоставить все, что начинается с” /| “и содержит что – либо после этого и заканчивается” . jpg До тех пор, пока здесь мы не получим такой вывод – /walls/full/2/5/9/20629.jpg который является относительным URL-адресом. Мы действительно не можем использовать это в качестве аргумента для команды wget . Нам нужно добавить “https://wallpaperplay.com” в начале URL-адреса, чтобы сделать его абсолютным URL-адресом.

  1. Превращение относительного URL-адреса в абсолютный URL-адрес.

sed ‘s/^/https://www.wallpaperplay.com/g’

Это регулярное выражение добавит “https://www.wallpaperplay.com” в начале URL. sed является потоковым редактором и в основном используется для редактирования текста. ^” означает в начале каждой строки. После выполнения всех этих операций у нас наконец-то есть действительный URL-адрес. Перенаправьте все ссылки на текстовый файл с помощью оператора” >” , а затем, наконец, передайте текстовый файл с помощью флага -i команде wget и -P для сохранения обоев в папке “обои”.

cat “minimalist-desktop-wallpapers” | grep -Eio ‘]+>’ | group -Eoi ‘/.*jpg’ | sed ‘s/^/https://www.wallpaperplay.com/g’ > links.txt

wget -i links.txt -P обои/

filename=$(echo “$1” | grep -Eoi ‘board/.*’ | cut -d’/’ -f2)

cat “$filename” | grep -Eio ‘]+>’ | group -Eoi ‘/.*jpg’ | sed ‘s/^/https://www.wallpaperplay.com/g’ > links.txt

wget $2 $3 -i links.txt -P обои/

rm $filename

рм links.txt