ABC automatyzacji pracy przy komputerze dla specjalistów SEO i nie tylko!

 w Linux, Oprogramowanie, Poradniki, SEO,

Wykonywanie powtarzalnych czynności jest uciążliwe i frustrujące a z biegiem czasu każdy pracownik biurowy czy też specjalista stwierdzi że traci czas i energie na coś, co może wykonać dowolna aplikacja czy dobry skrypt powszechnie nazywany jako macro.

W artykule znajdziesz informacje, jak „ułatwić” sobie pracę biurową, z jakich narzędzi warto korzystać (płatnych i darmowych) oraz to w jaki sposób programy, których używasz na co dzień, możesz wykorzystać w bardziej profesjonalnych rozwiązaniach.

Uwaga: w zestawieniu znajdziesz aplikacje i komendy bash, programy open source i komercyjne oraz skrypty w języku VBA. Wymienione narzędzia poniżej, które znam opisałem dokładniej z ich plusami, minusami i wykorzystaniem, podam również przykłady konkurencyjnych narzędzi, o których wiem ale z nich nie korzystam. Jeżeli znasz jakieś inne narzędzie, proszę o komentarz – z miłą chęcią przetestuje coś nowego – co może ułatwić mi pracę!

Efektywność i wydajność pracy jest jedną z cech dobrego pracownika czy specjalisty w każdej branży – jeżeli robisz coś szybciej, lepiej i wydajniej to jesteś w stanie wykonać więcej, osiągnąć lepszy wynik a tym samym stajesz się wartościowszy dla swojego pracodawcy czy klienta! Dobrze! Kończę już temat motywacji zawodowej – pora na opisy programów!


Automatyzacja pracy w internecie

Automatyzacja pracy w przeglądarce internetowej polega między innymi na takich czynnościach jak: automatycznie wypełnianie formularzy, pobieranie i wprowadzanie danych z plików csv, xlsx oraz innych czynności jak chociażby wygrywanie konkursów internetowych lub pobieranie dużej ilości danych ze stron internetowych zwanych webscarping”. Programiści używają takich aplikacji do automatyzacji testów aplikacji webowych.

Kantu Browser Automation

Kantu Browser Automation

Kantu Browser Automation

Kantu umożliwia bardzo łatwą konfiguracje powtarzalnych czynności wykonywanych w przeglądarce internetowej (Firefox, Chrome). Posiada własny OCR, rozpoznawanie obrazów i tekstów oraz automatykę bazująca na Selenium. Umożliwia wczytania danych z pliku csv oraz ich zapisywania w pętli do nowych wierszy arkusza danych.

Funkcja Visual Web Automation pozwala na wykonywanie działań macro na elementach typu Google Maps. Kantu potrafi czytać i rozpoznawać obrazy oraz tekst wewnątrz elementów, obrazów. Skrypty przechowywane są w formie plików JSON – oznacza to łatwość ich kopiowania, i dzielenia się z innymi współpracownikami.

Nie jest to tylko dodatek do przeglądarki, istnieje również wersja w formie aplikacji na systemy Windows, Mac i Linux. Niestety w przypadku wielu elementów wymagana jest instalacja dodatkowego, darmowego pluginu XModules, który dodaję możliwość poruszania kursorem myszy na twoim pulpicie.

Budowę skryptu najlepiej rozpocząć od wczytania przygotowanego przez autora gotowca a następnie odpowiednio dobierać komendy i elementy – po wybraniu funkcji record, program automatycznie zapisuje nasze działania. Następnie w interfejsie możemy dokonać korekt poprzez wybór odpowiedniego polecenia – select / find dzięki którym wybieramy i podświetlamy odpowiedni element na stronie internetowej, w którym polecenie skryptu ma wykonać działanie. Więcej na filmach poniżej.

^ Przykład skryptu do pobierania informacji z pliku CSV i wstawiania ich w formularz Google
{
  "Name": "DemoCsvReadWithLoop", //
  "CreationDate": "2019-3-2",
  "Commands": [
    {
      "Command": "store", 
      "Target": "fast",
      "Value": "!replayspeed"
    },
    {
      "Command": "comment",
      "Target": "The file ReadCSVTestData.csv is pre-installed with Kantu.",
      "Value": ""
    },
    {
      "Command": "csvRead",
      "Target": "ReadCSVTestData.csv",
      "Value": ""
    },
    {
      "Command": "open",
      "Target": "https://docs.google.com/forms/d/e/1FAIpQLScGWVjexH2FNzJqPACzuzBLlTWMJHgLUHjxehtU-2cJxtu6VQ/viewform",
      "Value": ""
    },
    {
      "Command": "type",
      "Target": "name=entry.933434489",
      "Value": "${!COL1}"
    },
    {
      "Command": "type",
      "Target": "name=entry.2004105717",
      "Value": "${!COL2}"
    },
    {
      "Command": "type",
      "Target": "name=entry.1382578664",
      "Value": "${!COL3}"
    },
    {
      "Command": "clickAndWait",
      "Target": "//*[@id=\"mG61Hd\"]/div/div[2]/div[3]/div[1]/div/div/content/span",
      "Value": ""
    }
  ]
}

^ Przykład skryptu makro do zapisywania informacji ze strony a9t9.com do pliku CSV
{
  "Name": "DemoCsvSave",
  "CreationDate": "2019-3-2",
  "Commands": [
    {
      "Command": "store",
      "Target": "fast",
      "Value": "!replayspeed"
    },
    {
      "Command": "open",
      "Target": "https://a9t9.com/kantu/demo/csvsave",
      "Value": ""
    },
    {
      "Command": "storeEval",
      "Target": "new Date().getFullYear()+\"-\"+(new Date().getMonth()+1)+\"-\"+new Date().getDate()+\" \"+ new Date().getHours()+\":\" + new Date().getMinutes() + \":\" + new Date().getSeconds()",
      "Value": "timestamp"
    },
    {
      "Command": "store",
      "Target": "${timestamp}",
      "Value": "!csvLine"
    },
    {
      "Command": "echo",
      "Target": "First column in the CSV is time (${timestamp})",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "Set i = 1 as we start the extraction with the 2nd table cell.",
      "Value": ""
    },
    {
      "Command": "store",
      "Target": "1",
      "Value": "i"
    },
    {
      "Command": "while",
      "Target": "(${i} < 8)",
      "Value": ""
    },
    {
      "Command": "storeEval",
      "Target": "${i}+1",
      "Value": "i"
    },
    {
      "Command": "echo",
      "Target": "Current value of i = ${i}",
      "Value": "i"
    },
    {
      "Command": "storeText",
      "Target": "//*[@id=\"gcw_mainFNGP5XSu6\"]/div[2]/table/tbody/tr[2]/td[${i}]/a",
      "Value": "c2"
    },
    {
      "Command": "store",
      "Target": "${c2}",
      "Value": "!csvLine"
    },
    {
      "Command": "echo",
      "Target": "Extracted Value for i=${i} is exchange rate = ${c2}",
      "Value": ""
    },
    {
      "Command": "endWhile",
      "Target": "",
      "Value": ""
    },
    {
      "Command": "echo",
      "Target": "${!csvLine}",
      "Value": ""
    },
    {
      "Command": "comment",
      "Target": "Append content of !csvLine to CSV file (or create file if none exists)",
      "Value": ""
    },
    {
      "Command": "csvSave",
      "Target": "CurrencyConverterData",
      "Value": ""
    },
    {
      "Command": "comment",
      "Target": "If needed, you can download (save) the CSV data from the CSV tab to the the download folder",
      "Value": ""
    },
    {
      "Command": "localStorageExport",
      "Target": "currencyconverterdata.csv",
      "Value": ""
    }
  ]
}

Plusy
  • aplikacja open source z możliwością rozszerzenia do wersji płatnej,
  • wersja w formie plugin do przeglądarki,
  • wczytywanie i zapisywanie do pliku arkusza CSV,
  • eksport i import skryptów za pomocą formatu JSON,
  • automatyzacja nie tylko na podstawie XPath i selektorów CSS a również na podstawie zrzutów elementu ekranu,
  • stworzony w oparciu o Selenium IDE,
  • gotowa baza skryptów, na których można się wzorować.
Minusy
  • brak możliwości użycia proxy,
  • instalacja dodatkowego modułu xModules – 25 powtórzeń w wersji darmowej na uruchomienie macro,
  • przy użyciu xModules użytkownik nie może pracować jednocześnie na komputerze,
  • Arkusz CSV musi zostać wyeksportowany z LibreOffice / OpenOffice (separatory kolumn jako przecinki) – wyeksportowany plik z Excela nie jest prawidłowy (cudzysłów).
Wykorzystanie
  • wgrywanie wpisów do WordPress (wypełnianie elementów alty, metatagi itp)
  • wprowadzanie danych do stron www za pomocą arkusza tekstowego CSV w pętli,
  • pobieranie danych ze stron i umieszczanie ich w pliku CSV,
  • pobieranie elementów XPath pozwala zintegrować to narzędzie z Screaming Frog Spider (funkcja custom extraction).


iMacros

imacros

iMacros

iMacros jest konkurencyjnym programem do Kantu – bazuje na tym samym rozwiązaniu i ma identyczne funkcje lecz różni się interfejsem i budową skryptów. Rozszerzenie do przeglądarki jest bardzo okrojone, a aplikacja kosztuje sporo w stosunku chociażby do programu Zennoposter. Nie używałem tego programu zbyt długo dlatego wspominam o nim tylko i wyłącznie informacyjnie jako alternatywę dla Kantu.

Przykładowy skrypt iMacros
Skrypt automatycznie wprowadza dane z pliku CSV i przesyła je do strony internetowej.

VERSION BUILD=10.4.28.1074
'Uses a Windows script to submit several datasets to a website, e. g. for filling an online database
TAB T=1     
TAB CLOSEALLOTHERS  
' Specify input file (if !COL variables are used, IIM automatically assume a CSV format of the input file
'CSV = Comma Separated Values in each line of the file
SET !DATASOURCE Address.csv
'Start at line 2 to skip the header in the file
SET !LOOP 2
'Increase the current position in the file with each loop 
SET !DATASOURCE_LINE {{!LOOP}}
' Fill web form   
URL GOTO=http://demo.imacros.net/Automate/AutoDataEntry
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:fname CONTENT={{!COL1}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:lname CONTENT={{!COL2}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:address CONTENT={{!COL3}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:city CONTENT={{!COL4}}
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:zip CONTENT={{!COL5}}
'
'Note * is used to ignore leading and trailing blanks that could be in the input data
'
'The precent (%) symbol is used to select the stateid by VALUE as defined in the website select statement and not by its index.
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:state CONTENT=$*{{!COL6}}*
'
'The string ($) symbol is used to select the country by TEXT, not by its index.
'Index would be the position of an entry in the combo box list, e. g. 161 for United States
TAG POS=1 TYPE=SELECT FORM=ID:demo ATTR=NAME:country CONTENT=$*{{!COL7}}*
'
TAG POS=1 TYPE=INPUT:TEXT FORM=ID:demo ATTR=NAME:email CONTENT={{!COL8}}
TAG POS=1 TYPE=BUTTON:submit FORM=ID:demo ATTR=TXT:Submit

TAG POS=1 TYPE=A ATTR=TXT:*Back* 
Plusy
  • dodatek do przeglądarki,
  • gotowa baza skryptów, na których można się wzorować,
  • automatyzacja przeglądarki – pobierania plików, połączenie z bazą danych.., wypełnianie formularzy,
  • możliwość testowania,
  • ekstrakcja danych,
  • trial na 30 dni pełnej wersji,
  • współpraca z plikami Excel.
Minusy
  • Problemy z funkcjonowaniem programu przy dwóch monitorach,
  • Interfejs.
Wykorzystanie
  • Analogiczne do Kantu,
  • Integracja z bazami danych pozwala na aktualizowanie stanów magazynowych np. poprzez pobranie cen ze sklepu konkurenta.


Zennoposter

Zennoposter

Zenek to nie tylko król discopolo ale również król automatyzacji 🙂

Zenek.. czyli program, który każdy porządny specjalista SEO powinien znać. Jest to najlepsze narzędzie do automatyzacji jakichkolwiek działań w przeglądarce – pozwala pisać bardzo zaawansowane skrypty. Można go używać przy pomocy proxy i automatycznie potwierdzać wiadomości na skrzynce pocztowej. Dodatkowo jego zastosowaniem może być możliwość manipulacji ocenami w serwisach www. Wiele osób wykorzystuje ten program do wygrywania konkursów internetowych.

Autorzy oferują go w 3 wariantach licencji, z czego licencja jest dożywotnia. Przyjazny interfejs aplikacji, obsługa wątków i własna przeglądarka (brak wtyczki do przeglądarki) powodują to że program jest całkowicie automatyczny i może działać w tle.

Program jest podzielony na 2 sekcje: projektową i wykonawczą, w pierwszej projektujemy i przygotowujemy projekt, w drugiej możemy go wykonać w pętli czy ustawić uruchomienie makra o o określonej dacie na podstawie kalendarza. Poniżej przykładowy skrypt wykonany w Zennoposterze.

Plusy
  • wielowątkowość (thready) – umożliwia odpalenie tego samego skryptu w kilku oknach przeglądarki,
  • profile użytkowników z zmiennymi,
  • proxy,
  • łatwa praca z listami, tekstami, arkuszami MS Excel,
  • obsługa FTP i baz danych,
  • klient poczty,
  • łatwość tworzenia skomplikowanych skryptów (w postaci bloków statycznych) i ich dzielenia na sekcje,
  • automatyzacja pracy z captchą.
Minusy
  • brak wersji darmowej w postaci np. wtyczki do przeglądarki (jedyna możliwość to trial 30 dni),
  • najtańsza wersja jednowątkowa „muli” i jest nieopłacalna,
  • duże obciążenie zasobów komputera.
Wykorzystanie
  • rejestracja kont mailowych, odbieranie maili, rejestracja profili na forach,
  • wygrywanie konkursów bazujących na głosowaniach internetowych,
  • wgrywanie i pobieranie elementów ze stron,
  • wiele innych 🙂


Selenium + Python

Selenium

Framework Selenium

Selenium IDE jest środowiskiem do testowania aplikacji webowych, które w połączeniu z przeglądarka Firefox, Chrome pozwala na wykonywanie skryptów Selenium. Pozwala na nagrywanie akcji i kroków macro oraz ich automatyzacje z wykorzystaniem języków programowania. Na jego bazie opiera się wymieniona wyżej aplikacja Kantu. Narzędzie przeznaczone jest głównie do testów witryn internetowych.

Selenium może zostać zaimportowane do np. Pythona, PHP dzięki czemu można wykorzystać je w automatycznych testach.

>>> from selenium.webdriver import Firefox
>>> from selenium.webdriver.firefox.options import Options
>>> opts = Options()
>>> opts.set_headless()
>>> assert opts.headless  # Operating in headless mode
>>> browser = Firefox(options=opts)
>>> browser.get('https://duckduckgo.com')

Automatyzacja testów aplikacji webowych



Screaming Frog Spider

screaming frog spider

Niezbędny specjaliście SEO

Screaming Frog Spider to kolejne z narzędzi niezbędnych dla specjalisty SEO. Program jest webcrawlerem napisanym w Javie, który grupuje najważniejsze elementy podstron twojego serwisu, dzięki czemu w łatwy sposób można wyłapać błędne linki, przekierowania oraz setki innych rzeczy ważnych z punktu optymalizacji stron internetowych.

O ile wielu specjalistów od pozycjonowania korzysta z tego narzędzia, to jego zastosowanie nie kończy się tylko w tej dziedzinie. Screaming frog umożliwia pobranie każdego z elementów strony w sposób szybki i z pełna automatyzacją za pomocą extraction tool.

W połączeniu z ^funkcja select z aplikacji Kantu łatwo możemy pobrać XPath elementu dowolnej treści na stronie internetowej, która Screaming Frog „wyciągnie” nam z każdej podstrony serwisu. Może to nam pomóc gdy klient planuje migracje strony na jej nową wersje – skanujemy poszczególne unikalne elementy i eksportujemy je do pliku MS Excel.

/html/body/div[4]/div[2]/div/div

Sam tym narzędziem „pobrałem” informacje o 45 tysiącach wtyczek WordPressa i o 7 tysiącach darmowych skórek znajdujących się w repozytorium tego systemu stron internetowych, co pozwoliło mi na stworzenie statystyk dotyczących repozytorium WordPressa.

Plusy
  • możliwość analizy dowolnej strony internetowej,
  • możliwość pobrania dowolnego elementu znajdującego się w kodzie strony (również w aplikacjach react, angular JS),
  • możliwość pobierania zdjęć, kodu strony i jego analizy,
  • możliwość wysadzenia strony internetowej gdy znajduję się na słabym serwerze,
  • wersja dostępna na systemy UNIX.
Minusy
  • bardzo okrojony w wersji darmowej,
  • w zależności od ilości stron duże obciążenie zasobów komputera,
  • brak możliwości kupienia licencji dożywotniej,
  • problematyczny tester pliku robots.txt zwracający inne wyniki niż oficjalny parser w Google Search Console.
Wykorzystanie
  • audyty SEO,
  • kondycja techniczna witryny,
  • pobieranie danych ze stron internetowych,
  • analiza UX podstron witryny – umożliwia wykonywanie screenów,
  • badanie obciążenia serwera i wczytywania się strony,
  • eksport XLS i filtrowanie danych.


Auto Text Expander Google Chrome

Auto Text Expander

Interfejs wtyczki

Wtyczka do przeglądarki umożliwiająca tworzenie skrótów klawiszowych, które wklejają odpowiedni tekst wraz z informacją ze schowka. Jest to przydatne chociażby podczas pisania maili. Można ją wykorzystać do przechowywania rożnych elementów tekstowych, które się powtarzają. Dodatek jest bezpłatny i nie posiada reklam, umożliwia również eksport i import skrótów klawiszowych.

Auto text expander chrome extension

Działanie rozszerzenia auto text expander



Automatyzacja pracy na komputerze np. czynności w systemie Windows

Notepad++

automatyzacja czynności w edytorze tekstu notepad ++

Interfejs programu notepad++

Notepad++ jak sama nazwa wskazuję jest lepszą wersją windowsowego notatnika. Umożliwia prace na wielu plikach tekstowych poprzez zakładki, pozwala również na świetną automatyzacje czynności w edytorze tekstu poprzez wbudowane nagrywanie i odtwarzanie macro.

Przykładowe macro tekstu, które usuwa znaki nowej linii \n zamieniając je na przecinek ze spacją.



AutoHotKey + Pulover’s Macro Creator

Język skryptowy do automatyzacji działań na komputerze, nie tylko w przeglądarce! Oprogramowanie bezpłatne o bardzo dużych możliwościach. Pozwala ustawić specjalne skróty klawiszowe, które będą działać tylko w danej aktywnej aplikacji oraz makr. Umożliwia korzystanie w skryptach z pól systemu Windows jak i innych elementów tego systemu.

Przygotowanie skryptu polega na stworzeniu pliku tekstowego (za pomocą np. notatnika) o rozszerzeniu .ahk oraz jego uruchomienie. Aktywność programu można sprawdzić w pasku startowym windows obok ikon

Program posiada wsparcie dużej społeczności, na jego stronie znajduję się lista gotowych skryptów skryptów oraz bazę pomocy dla początkujących i drzemie w nim ogromny potencjał do automatyzacji czynności  np. skryptów do oszukiwania w grach komputerowych

Przykładowy skrypt AutoHotkey otwierający notatnik podczas wciśnięcia przycisków numpad0 + numpad2 oraz wyświetlający msgBox przy wciśnięciu numpad0 + numpad1.

Numpad0 & Numpad1::
MsgBox, Podczas wciskania przycisku numpad0 wcisnąłeś numpad1.
return

Numpad0 & Numpad2::
Run, notepad.exe
return

PulOver’s Macro Creator to aplikacja macro do nagrywania i obsługi makr za pomocą języka AutoHotKey. Ułatwia zarządzanie i przygotowanie makr.

PulOver's Macro Creator

Interfejs – PulOver’s Macro Creator



Excel – Visual Basic for Applications (VBA)

Microsoft Excel to narzędzie, które pozwala nie tylko manipulować kolumnami czy wierszami arkusza danych – za pomocą skryptów VBA możemy pobrać setki tysięcy obrazów automatycznie na dysk oraz je odpowiednio nazwać by były bardziej przyjazne wyszukiwarce internetowej. W poszukiwaniu automatycznych skryptów zalecam stronę stackoverflow.com.

Wiele firm korporacyjnych posiada setki gotowych skryptów, z których korzystają pracownicy – jeżeli uważasz się za eksperta od Excela to powinieneś zapoznać się z poradnikiem dotyczącym języka VBA, który znajduję się w przycisku poniżej.

Konfiguracja w Excelu:

^ Skrypt, który obcina slug adresu URL zostawiając tylko domenę www
'Źródło skryptu: https://github.com/macklevine/SEOMacros

'for splitting domains out from a disavow list
Sub splitURLS()
    Dim counter As Long
    Dim cellValue As String
    counter = 3
    With ActiveSheet
        Do While .Cells(counter, 1) <> 0
            cellValue = .Cells(counter, 1).Value
            If Left(cellValue, 7) = "http://" Then
                If InStr(9, cellValue, "/") = 0 Then
                    .Cells(counter, 2).Value = Mid(cellValue, 8)
                Else
                    .Cells(counter, 2).Value = Mid(cellValue, 8, InStr(8, cellValue, "/") - 8)
                End If
            ElseIf Left(cellValue, 7) = "domain:" Then
                .Cells(counter, 2).Value = Mid(cellValue, 8)
            ElseIf Left(cellValue, 8) = "https://" Then
                If InStr(9, cellValue, "/") = 0 Then
                    .Cells(counter, 2).Value = Mid(cellValue, 9)
                Else
                    .Cells(counter, 2).Value = Mid(cellValue, 9, InStr(9, cellValue, "/") - 9)
                End If
            Else
            End If
        counter = counter + 1
        Loop
    End With
End Sub

^ Skrypt, który pozwala pobrać duża ilość zdjęć z odpowiednią nazwą
'Źródło skryptu: https://stackoverflow.com/questions/10383614/get-pictures-from-a-url-and-then-rename-the-picture
Option Explicit

Private Declare Function URLDownloadToFile Lib "urlmon" _
Alias "URLDownloadToFileA" (ByVal pCaller As Long, _
ByVal szURL As String, ByVal szFileName As String, _
ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long

Dim Ret As Long

'~~> This is where the images will be saved. Change as applicable
Const FolderName As String = "C:\Temp\"

Sub Sample()
    Dim ws As Worksheet
    Dim LastRow As Long, i As Long
    Dim strPath As String

    '~~> Name of the sheet which has the list
    Set ws = Sheets("Sheet1")

    LastRow = ws.Range("A" & Rows.Count).End(xlUp).Row

    For i = 2 To LastRow '<~~ 2 because row 1 has headers
        strPath = FolderName & ws.Range("A" & i).Value & ".jpg"

        Ret = URLDownloadToFile(0, ws.Range("B" & i).Value, strPath, 0, 0)

        If Ret = 0 Then
            ws.Range("C" & i).Value = "File successfully downloaded"
        Else
            ws.Range("C" & i).Value = "Unable to download the file"
        End If
    Next i
End Sub


Skrypty bash

Bash z nakładką Fish

Bash jest uniksowym językiem poleceń.

Bash jest uniksowym systemem poleceń, ułatwiającym pracę i zarządzanie w systemach Unix. Możliwa jest również jego instalacja w systemie Windows 10. Skrypty i aplikacje napisane w tej formie pozwalają na duża elastyczność oraz automatyzacje np. kompresji zdjęć, operacji tekstowych na plikach, usuwanie duplikatów, zliczanie unikalnych wyrazów i wiele innych. Jest to o wiele lepszy odpowiednik programu cmd z systemu Windows.

Przykładowe komendy można sprawdzić za pomocą wpisania w konsoli curl cheat.sh/<nazwa polecenia>  zwróci to przykłady poleceń.

Najpopularniejsze narzędzia, z których korzystam to:

  • imgp – kompresja i manipulacja zdjęciami
# 
# imgp 
# 
# Zmniejszenie zdjęc i rotacja z wiersza polecenia dla obrazów JPEG i PNG. 
# 
# Konwertuj pojedyncze obrazy i / lub całe katalogi zawierające poprawne formaty obrazu:
imgp -x 1366x1000 path/to/dir path/to/file     
# 
# Skalowanie obrazu o 75% i nadpisanie obrazu źródłowego do docelowej rozdzielczości: 
imgp -x 75 -w path/to/file
# # Obracanie obrazu w prawo o 90 stopni: 
imgp -o 90 path/to/file
# #
  • pngquant – kompresja plików png
#https://stackoverflow.com/questions/9647920/recursively-batch-process-files-with-pngquant

#Jeśli masz ograniczoną głębokość katalogów i niezbyt wiele plików, to leniwe rozwiązanie: 
pngquant *.png */*.png */*/*.png
#Standardowe rozwiązanie: 
find . -name '*.png' -exec pngquant --ext .png --force 256 {} \;
#i wersja wielordzeniowa: 
find . -name '*.png' -print0 | xargs -0 -P8 -L1 pngquant --ext .png --force 256
  • fish – friendly interactive shell
# 
# fish 
# 
# Friendly Interactive Shell. 
# Interpreter wiersza poleceń zaprojektowany tak, aby był przyjazny dla użytkownika. 
# 
# Uruchom interaktywną powłokę: 
fish 
# # Wykonaj polecenie: 
fish -c "command" 
# # Uruchom polecenie z pliku: 
fish file.fish 
# # Sprawdź plik pod kątem błędów składniowych: 
fish --no-execute file.fish 
# # Wyświetl informacje o wersji i zakończ: 
fish --version # #
  • mozjpeg – kompresja plików .jpg / .jpeg:
#Przykład - kompresja wszystkich zdjęć w danym aktualnie znajdującym sie folderze do jakości 75% 
find $1 -type f -regex '.*\(jpg\|jpeg\|JPG\)$' -exec mozjpeg -quality 75 -copy none -outfile {} {} \;
  • ImageMagick (convert)
# Aby zmienić rozmiar obrazu na stałą szerokość i wysokość proporcjonalną: 
convert original-image.jpg -resize 100x converted-image.jpg

# Aby zmienić rozmiar obrazu na stałą wysokość i szerokość proporcjonalną: 
convert original-image.jpg -resize x100 converted-image.jpg

# Aby zmienić rozmiar obrazu na stałą szerokość i wysokość: 
convert original-image.jpg -resize 100x100 converted-image.jpg

# Aby zmienić rozmiar obrazu, a jednocześnie zmienić typ pliku: 
convert original-image.jpg -resize 100x converted-image.png

# Aby zmienić rozmiar wszystkich obrazów w katalogu: 
# Aby zaimplementować pętlę 
for file in `ls original/image/path/`;
    do new_path=${file%.*};
    new_file=`basename $new_path`;
    convert $file -resize 150 conerted/image/path/$new_file.png;
done

# Dodanie tekstu (text = Flower)
convert flower.jpg -font courier -fill white -pointsize 20 -annotate +50+50 'Flower' flower_annotate1.jpg

# przyciąć obraz 
convert flower.jpg -crop 128×128+50+50 flower_crop.jpg

# Obrócić obraz 
convert flower.jpg -rotate 45 flower_rotate45.jpg

# Dodać obramowanie 
convert -border 1x1 -bordercolor "#FFFFFF" image.png new-image.png

# Konwersja PNG do JPEG (o 70%), jakość 
convert -quality 70 image.png new_image.jpg
  • komendy tekstowe jak awk, sed, sort, uniq, tr, cat
  •  ^ cat plik.txt | tr " " "\n" | sort | uniq -c | sort -gr > uniq.txt pozwala stworzyć listę unikalnych wyrazów z danego pliku tekstowego (plik.txt) i zapisanie go jako uniq.txt

Podsumowanie

Wymienione wyżej aplikacje i programy pozwalają na automatyzacje wielu czynności, od ściągania plików po stworzenie np. miniatur dla tysięcy zdjęć w minutę :). Od ciebie będzie zależeć jak je wykorzystasz i czy przydadzą Ci się w codziennej pracy. Zalecam zapoznanie się z wyrażeniami regularnymi (regex) oraz linią poleceń – w przypadku szukania skryptów, wiele gotowych rozwiązań znajduję się na YouTube czy stackoverflow.

6 Komentarze

Paweł

Marzec 3, 2019

Super zestawienie. Wszystkie znane i lubiane, 2 zapomniane (niesłusznie) 🙂 Dzięki za nową motywację do dalszej nauki skryptów.

Odpowiedz

Bartosz

Marzec 4, 2019

AutoHotKey I Pulover’s Macro Creator rzeczywiście robią robotę. Dzięki za zestawienie

Odpowiedz

Michał

Marzec 4, 2019

Wojciech dobra marka – świetne zestawienie!

Odpowiedz

Antoni z Reklamea

Marzec 4, 2019

Świetne zestawienie, dzięki. Wstyd, bo znałem raptem 3 narzędzia z całej listy. Chyba najwyższy czas za automatyzację powtarzalnych czynności.

Odpowiedz

Zgred

Marzec 4, 2019

Szernięte 🙂 i podane dalej. Fajny spis – tylko keidy się tego uczyć.

Odpowiedz

Wojciech Hadała

Marzec 5, 2019

Dzięki za przedstawienie zestawienia, trafiło ono do Android News więc zostało docenione 😉 Ciekawe narzędzie imitujące zahowanie człowieka na stronie – posiadające wbudowaną przeglądarkę jest nightmare js Jeśli chodzi oczywiście o przeglądanie nowoczesnych stron internetowych, gdzie większość treści podawana jest „w locie” – niema statycznych postaci HTML oraz php

Odpowiedz

Zostaw komentarz