Powtarzanie tych samych czynności może być uciążliwe i frustrujące. Wielu pracowników biurowych czy specjalistów zauważa z czasem, że tracą cenną energię i czas na zadania, które mógłby wykonać odpowiedni skrypt lub aplikacja, często określana mianem „macro”.
W tym artykule dowiesz się, jak ułatwić sobie codzienną pracę biurową. Przedstawię narzędzia, które warto mieć pod ręką – zarówno płatne, jak i darmowe. Pokażę też, jak wykorzystać programy, z którymi pracujesz na co dzień, do bardziej zaawansowanych zastosowań.
Uwaga: W artykule wymienię aplikacje, komendy bash, programy open source, komercyjne oraz skrypty w języku VBA. Narzędzia, które osobiście znam, opiszę dokładniej, podając ich zalety, wady oraz możliwości wykorzystania. Przedstawię też alternatywy, z których sam nie korzystam, ale które znam. Jeżeli jesteś użytkownikiem innych narzędzi, zachęcam do zostawienia komentarza – chętnie przetestuję coś nowego, co może ułatwić mi pracę!
Efektywność i wydajność to kluczowe cechy dobrego pracownika w każdej branży. Jeśli pracujesz szybciej, skuteczniej i bardziej efektywnie, jesteś w stanie osiągnąć więcej, co czyni Cię bardziej wartościowym dla pracodawcy lub klienta. Ale wystarczy o motywacji zawodowej – przejdźmy do omawiania programów!
Automatyzacja pracy w internecie
Automatyzacja działań w przeglądarce internetowej obejmuje takie zadania jak: automatyczne wypełnianie formularzy, importowanie i eksportowanie danych z plików csv czy xlsx, a także, na przykład, automatyczne uczestnictwo w konkursach online czy zbieranie danych ze stron internetowych, nazywane „webscrapingiem”. Tego typu narzędzia są często wykorzystywane przez programistów do automatyzacji testów aplikacji internetowych.
Kantu Browser Automation
Kantu to narzędzie do automatyzacji działań w przeglądarce internetowej, takiej jak Firefox czy Chrome. Charakteryzuje się prostotą konfiguracji powtarzalnych czynności. Wyróżnia się kilkoma kluczowymi funkcjami:
-
Wbudowany OCR i rozpoznawanie obrazów: Kantu posiada zaawansowane technologie do rozpoznawania tekstu oraz obrazów.
-
Automatyzacja na bazie Selenium: Jest to solidne fundamenty, na których oparta jest większość narzędzi do automatyzacji przeglądarki.
-
Obsługa danych z plików CSV: Umożliwia wczytywanie danych z plików csv oraz zapisywanie ich w pętli do kolejnych wierszy arkusza.
-
Funkcja Visual Web Automation: Pozwala to na interakcję z bardziej skomplikowanymi elementami, jak na przykład mapy Google. Kantu potrafi również czytać i rozpoznawać treści wewnątrz elementów czy obrazów.
-
Skrypty w formacie JSON: Dzięki przechowywaniu skryptów w formie plików JSON, łatwo jest je kopiować oraz dzielić się nimi z kolegami z zespołu.
Co więcej, Kantu nie ogranicza się jedynie do bycia rozszerzeniem do przeglądarki. Istnieje także wersja desktopowa dostępna dla systemów Windows, Mac i Linux. Warto jednak zaznaczyć, że dla pełnej funkcjonalności w niektórych przypadkach konieczne jest zainstalowanie dodatkowego, bezpłatnego pluginu XModules. Dzięki niemu Kantu zyskuje zdolność do sterowania kursorem myszy na pulpicie użytkownika.
Idealnym punktem wyjścia do budowy skryptu jest skorzystanie z gotowego szablonu dostarczonego przez twórców. Następnie, dopasowując odpowiednie komendy i elementy, można dostosować go do własnych potrzeb. Gdy wybierzesz funkcję „record”, program zacznie automatycznie rejestrować Twoje działania. W interfejsie, po zakończeniu nagrywania, masz możliwość dokonania korekt. Można użyć poleceń takich jak „select” czy „find”, aby wybrać i podświetlić konkretny element na stronie, w którym skrypt ma zostać wykonany. Więcej informacji i praktycznych wskazówek znajdziesz w poniższych filmach.
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": "" } ] }
Zalety:
- Jest to narzędzie open source, z opcją uaktualnienia do wersji płatnej.
- Dostępne jako plugin do przeglądarki.
- Możliwość wczytywania danych z arkusza CSV oraz ich zapisywania.
- Eksport i import skryptów za pomocą formatu JSON.
- Automatyzacja nie tylko na bazie XPath i selektorów CSS, ale również dzięki zrzutom ekranowym elementów.
- Bazuje na Selenium IDE.
- Bogata biblioteka gotowych skryptów do adaptacji.
Wady:
- Brak wsparcia dla proxy.
- Konieczność instalacji dodatkowego modułu xModules – w wersji darmowej ograniczenie do 25 uruchomień macro.
- Podczas korzystania z xModules, nie można jednocześnie pracować na komputerze.
- Arkusz CSV musi zostać wyeksportowany przy użyciu LibreOffice lub OpenOffice z przecinkami jako separatorami kolumn. Eksport z Excela może powodować problemy (problemy z cudzysłowami).
Przykładowe zastosowanie:
- Automatyczne dodawanie wpisów do WordPress (wypełnianie pól „alt”, metatagów itp.).
- Wprowadzanie informacji do stron internetowych korzystając z arkusza CSV.
- Pobieranie informacji ze stron i zapisywanie ich w pliku CSV.
- Możliwość pobierania elementów XPath, co umożliwia integrację z narzędziem Screaming Frog Spider (funkcja custom extraction).
iMacros
iMacros stanowi alternatywę dla Kantu. Chociaż bazuje na podobnym rozwiązaniu i oferuje identyczne funkcje, różni się od niego interfejsem oraz strukturą skryptów. Jego wersja w formie rozszerzenia do przeglądarki jest znacząco okrojona, a pełna aplikacja ma stosunkowo wysoką cenę, zwłaszcza w porównaniu z narzędziami takimi jak Zennoposter. Osobiście nie miałem okazji używać iMacros przez dłuższy czas, dlatego wspominam o nim głównie w kontekście informacyjnym jako o alternatywie dla Kantu.
Wygląd skryptu 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*
Zalety:
- Dostępność jako dodatek do przeglądarki.
- Bogata biblioteka gotowych skryptów do adaptacji.
- Zaawansowana automatyzacja przeglądarki: pobieranie plików, połączenie z bazami danych, wypełnianie formularzy itp.
- Możliwość testowania skryptów.
- Efektywna ekstrakcja danych z przeglądanych stron.
- 30-dniowy okres próbny pełnej wersji.
- Zintegrowanie z plikami Excel.
Wady:
- Problemy z działaniem programu przy korzystaniu z dwóch monitorów.
- Interfejs może nie być intuicyjny dla wszystkich użytkowników.
Przykładowe zastosowania:
- Użytkowanie podobne do Kantu.
- Dzięki integracji z bazami danych można automatycznie aktualizować stany magazynowe, na przykład poprzez pobieranie cen produktów ze sklepów konkurencyjnych.
Zennoposter
Zennoposter, potocznie nazywany „Zenkiem”, to narzędzie, które każdy profesjonalista w dziedzinie SEO powinien znać. Jest to jedno z najbardziej zaawansowanych narzędzi do automatyzacji działań w przeglądarce, umożliwiające tworzenie skomplikowanych skryptów. Program obsługuje proxy, umożliwia automatyczne potwierdzanie wiadomości e-mail, a także może być wykorzystywany do manipulowania ocenami na różnych stronach internetowych. Często jest też stosowany do automatycznego uczestniczenia w konkursach online.
Twórcy Zennopostera oferują trzy warianty licencji, wszystkie z nich są dożywotnie. Intuicyjny interfejs, wielowątkowość i wbudowana przeglądarka (bez konieczności instalowania dodatkowych wtyczek) sprawiają, że narzędzie może pracować w pełni automatycznie, działając w tle.
Aplikacja składa się z dwóch głównych sekcji: projektowej i wykonawczej. W części projektowej tworzymy i przygotowujemy nasze zadania, natomiast w sekcji wykonawczej możemy je uruchamiać – zarówno w pętli, jak i zgodnie z zaplanowanym harmonogramem opartym na kalendarzu. Poniżej prezentujemy przykładowy skrypt stworzony za pomocą Zennopostera.
Zalety:
- Wielowątkowość (thready): pozwala na równoczesne uruchomienie tego samego skryptu w kilku oknach przeglądarki.
- Profile użytkowników z zmiennymi.
- Wsparcie dla proxy.
- Prosta praca z listami, tekstami i arkuszami MS Excel.
- Obsługa FTP i baz danych.
- Klient poczty.
- Intuicyjne tworzenie zaawansowanych skryptów (w postaci bloków statycznych) oraz ich segmentacja.
- Automatyczna praca z captchą.
Minusy:
- Brak darmowej wersji, np. w formie wtyczki do przeglądarki (dostępny tylko 30-dniowy trial).
- Najtańsza wersja, jednowątkowa, działa wolniej i nie jest opłacalna.
- Znaczne obciążenie zasobów komputera.
Zastosowania:
- Rejestracja kont mailowych, odbieranie e-maili, zakładanie profili na forach.
- Wygrywanie konkursów opartych na internetowych głosowaniach.
- Upload i download treści ze stron.
- I wiele innych zastosowań.
Selenium + Python
Selenium IDE to narzędzie przeznaczone do testowania aplikacji internetowych. Współpracuje z przeglądarkami takimi jak Firefox czy Chrome, umożliwiając wykonywanie skryptów Selenium. Za jego pomocą użytkownik może nagrywać sekwencje akcji (macro) i następnie automatyzować je przy użyciu różnych języków programowania, takich jak Python czy PHP.
Jest to podstawowa technologia, na której opiera się wcześniej wspomniana aplikacja Kantu. Chociaż głównym celem Selenium IDE jest testowanie stron internetowych, jego wszechstronność pozwala na zastosowanie go w różnych innych scenariuszach.
Dzięki bibliotekom dostępnym dla różnych języków programowania, takich jak Python czy PHP, Selenium może być łatwo zintegrowane z innymi narzędziami i wykorzystywane w zaawansowanych testach automatycznych.
>>> 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 to kluczowe narzędzie dla każdego specjalisty SEO. Jest to webcrawler stworzony w Javie, który skanuje i kategoryzuje najistotniejsze elementy stron internetowych, co znacznie ułatwia identyfikację takich problemów jak błędne linki czy nieprawidłowe przekierowania. Dzięki temu, specjaliści mogą skuteczniej optymalizować witryny pod kątem wyszukiwarek.
Chociaż narzędzie to jest szczególnie popularne wśród ekspertów SEO, jego funkcjonalność wykracza poza jedynie tę specjalizację. Dzięki funkcji „extraction tool”, Screaming Frog Spider pozwala na szybkie i zautomatyzowane pobieranie dowolnych elementów strony.
Korzystając z funkcji select
dostępnej w aplikacji Kantu, możemy łatwo uzyskać XPath dowolnego elementu na stronie internetowej. Współpracując z Screaming Frog, narzędzie to pozwala „wyciągnąć” nam konkretną treść z każdej podstrony. Taka funkcjonalność jest niezwykle przydatna, zwłaszcza gdy klient planuje migrację strony do jej nowszej wersji. Możemy wówczas skanować unikalne elementy witryny i eksportować je bezpośrednio do pliku MS Excel.
/html/body/div[4]/div[2]/div/div
Za pomocą tego narzędzia zebrałem dane na temat 45 tysięcy wtyczek do WordPressa oraz 7 tysięcy darmowych motywów dostępnych w repozytorium tego systemu. Dzięki temu miałem możliwość stworzenia szczegółowych statystyk na temat repozytorium WordPressa.
Zalety:
- analiza dowolnej strony internetowej,
- ekstrakcja dowolnego elementu z kodu źródłowego strony (w tym aplikacje oparte o React czy Angular JS),
- pobieranie grafik, analiza kodu źródłowego,
- ryzyko „zawieszenia” strony hostowanej na słabym serwerze,
- wersja dostępna dla systemów UNIX.
Wady:
- silne ograniczenia w wersji bezpłatnej,
- duże obciążenie komputera w przypadku analizy wielu stron,
- brak opcji zakupu licencji na stałe,
- tester pliku robots.txt, który czasem daje inne wyniki niż oficjalne narzędzie w Google Search Console.
Przykładowe zastosowania:
- audyty SEO,
- ocena kondycji technicznej witryny,
- zbieranie danych ze stron internetowych,
- analiza UX na poszczególnych podstronach, w tym możliwość robienia zrzutów ekranu,
- testowanie wydajności serwera i czasu ładowania strony,
- eksport danych do formatu XLS i ich filtrowanie.
Auto Text Expander Google Chrome
Auto Text Expander to dodatek do przeglądarki Google Chrome, który pozwala użytkownikowi na tworzenie skrótów klawiszowych, które automatycznie zamieniają się na wcześniej zdefiniowane, dłuższe fragmenty tekstu. Wtyczka ta może okazać się niezwykle pomocna, szczególnie w sytuacjach, gdy często powtarzamy te same frazy, np. podczas odpowiadania na e-maile.
Nie jest to tylko zwykły „wklejacz” tekstu. Auto Text Expander oferuje funkcję wykorzystania zawartości schowka, dzięki czemu możemy wzbogacić nasze standardowe odpowiedzi o dodatkowe informacje – w momencie, gdy potrzebujemy.
Dzięki Auto Text Expander, komunikacja, zwłaszcza w środowisku biznesowym, staje się szybsza i bardziej efektywna. To narzędzie jest szczególnie polecane dla osób, które pragną zautomatyzować i usprawnić swoje codzienne zadania związane z pisaniem w przeglądarce.
Kluczowe cechy i zalety wtyczki
- Możliwość tworzenia własnych skrótów klawiszowych dla często używanych fragmentów tekstu.
- Bezproblemowe integrowanie się z zawartością schowka.
- Idealne narzędzie do przechowywania i szybkiego wklejania standardowych odpowiedzi, adresów, podpisów i innych często używanych tekstu.
- Bezpłatność: wtyczka jest dostępna za darmo i nie zasłania ekranu reklamami.
- Funkcja eksportu i importu: łatwość przenoszenia swoich skrótów między różnymi urządzeniami lub przeglądarkami.
Automatyzacja pracy na komputerze np. czynności w systemie Windows
Notepad++
Notepad++ stanowi rozbudowaną alternatywę dla standardowego Notatnika dostępnego w systemie Windows. Dzięki wielozakładkowemu interfejsowi pozwala na jednoczesną pracę z wieloma dokumentami. Jednym z głównych atutów tego edytora jest możliwość automatyzacji różnych czynności dzięki wbudowanej funkcji nagrywania i odtwarzania makr. Wspomaga to efektywne i szybkie edytowanie tekstu, czyniąc Notepad++ nieocenionym narzędziem dla wielu użytkowników.
Przykładowe macro tekstu, które usuwa znaki nowej linii \n zamieniając je na przecinek ze spacją.
AutoHotKey + Pulover’s Macro Creator
AutoHotKey to zaawansowany język skryptowy przeznaczony do automatyzacji różnych działań na komputerze – nie tylko w przeglądarce. Jest to oprogramowanie bezpłatne, które oferuje szereg zaawansowanych możliwości. Dzięki niemu możemy definiować specjalne skróty klawiszowe dedykowane dla konkretnych aplikacji czy tworzyć skomplikowane makra. Skrypty mogą interaktywnie korzystać z różnych elementów systemu Windows.
Tworzenie skryptu jest proste. Wystarczy przygotować plik tekstowy, najlepiej za pomocą notatnika, o rozszerzeniu .ahk i następnie go uruchomić. Aktywność programu można monitorować na pasku startowym Windows, gdzie pojawia się odpowiednia ikona.
AutoHotKey posiada wsparcie dużej społeczności. Na oficjalnej stronie programu znajduje się lista gotowych do użycia skryptów oraz obszerna baza wiedzy, która pomoże początkującym użytkownikom. To narzędzie kryje w sobie ogromny potencjał, umożliwiający automatyzację wielu zadań, w tym na przykład skryptów służących 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 narzędzie służące do nagrywania oraz zarządzania makrami, oparte na języku AutoHotKey. Umożliwia łatwe tworzenie i edycję makr, upraszczając tym samym ich przygotowanie i wykorzystanie.
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 to uniksowy interpreter poleceń, ułatwiający pracę i zarządzanie w systemach Unix. Choć tradycyjnie jest używany w systemach Unix, możliwa jest również jego instalacja na Windows 10.
Skrypty bash pozwalają na dużą elastyczność i automatyzację różnych zadań, takich jak kompresja zdjęć, operacje tekstowe na plikach, usuwanie duplikatów, zliczanie unikalnych wyrazów i wiele innych. W porównaniu do konsoli cmd w systemie Windows, Bash oferuje znacznie więcej możliwości.
Jeśli chcesz poznać przykładowe komendy, wystarczy wpisać w konsoli curl cheat.sh/<nazwa polecenia>
a otrzymasz przykłady użycia danego polecenia.
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
Jako specjalista SEO regularnie korzystam z wcześniej wymienionych aplikacji i programów. Umożliwiają one automatyzację wielu zadań, począwszy od pobierania plików, a kończąc na generowaniu miniatur dla tysięcy zdjęć w zaledwie kilka minut :).
Te narzędzia nie tylko znacznie upraszczają i przyspieszają moje zadania, ale też zwiększają ogólną wydajność w codziennej pracy. To, jak skorzystasz z tych narzędzi i czy staną się one pomocne w Twojej pracy, zależy od Ciebie. Gorąco zalecam zapoznanie się z wyrażeniami regularnymi (regex) oraz linią poleceń. Jeśli szukasz gotowych skryptów, wiele rozwiązań możesz znaleźć na platformach takich jak YouTube czy Stack Overflow.