poniedziałek, 3 czerwca 2013

Automatyczne śledzenie zmian na ulubionych witrynach

Zapewne nieraz spotkaliście się z sytuacją, gdy chcieliście śledzić zawartość danej strony internetowej pod kątem zmian na niej. Oczywiście codziennie możemy sprawdzać ulubioną stronę ręcznie, niemniej nie jest to wygodne rozwiązanie, a duży problem pojawia się w momencie, gdy do sprawdzenia mamy kilka takich stron. Opisana poniżej metoda jest przydatna, gdy dany serwis nie udostępnia nam kanału RSS, dzięki któremu możemy śledzić zmiany, bądź publicznego profilu na popularnych serwisach, takich jak Facebook, bądź Twitter.

Czego będziemy potrzebowali? Przede wszystkim przeglądarki, ponieważ pierwsza z wtyczek, która umożliwi nam śledzenie stron napisana jest pod Firefoxa. Nazwa samej wtyczki to AlertBox, możecie ją pobrać z oficjalnej strony wtyczki na witrynie Firefox Addons, bądź ze strony twórcy. Po zainstalowaniu oprogramowania w górnym prawym rogu przeglądarki, naszym oczom powinna ukazać się ikona:


Dodatkowo w menu kontekstowym, które pojawia się po kliknięciu prawego klawisza myszy na stronie, pojawi się nowe podmenu:


Samo oprogramowanie opiera się na wyrażeniach regularnych, ścieżkach XPath oraz lokalizatorach DOM. Szczerze powiedziawszy nie udało mi się znaleźć bardziej zaawansowanej wtyczki pod tym kątem. Swoją funkcjonalnością przebija nawet pełnoprawne programy o podobnej funkcjonalności. Następnym krokiem jest znalezienie witryny, którą będziemy śledzili. Na potrzeby niniejszego wpisu skorzystamy z oficjalnego bloga gry SimCity. Fani produkcji będą chcieli go śledzić pod kątem nowinek z gry. W tym miejscu musimy znaleźć charakterystyczny znacznik na stronie, który pozwoli na odróżnienie pojawiających się wpisów. Najczęściej takim znacznikiem jest data, bądź licznik postów (najczęściej w przypadku forum tematycznego). Na nasze szczęście twórcy bloga SimCity oznaczają każdy wpis datą w formacie "Jun 03, 2013":


W tym miejscu musimy stworzyć wyrażenie regularne, na podstawie którego AlertBox rozpozna, że na stronie pojawił się nowy wpis. Dla naszych potrzeb będzie ono wyglądało następująco: [A-z]+\s[0-9]+,\s[0-9]+. Oczywiście tworzenie wyrażeń to kwestia dowolna każdego z użytkowników, mogą one być bardziej ścisłe, bądź mające charakter bardziej otwarty o czym wspominałem przy okazji wpisu dotyczącego tworzenia reguł w oprogramowaniu ruTorrent. Jeśli chcecie podszkolić znajomość wyrażeń regularnych oraz sprawdzić przykładowe wyrażenia, zapraszam do lektury strony Regular-Expressions.info

Gdy mamy już stworzone wyrażenie, musimy je dodać dla danej strony klikając poniższy przycisk w podmenu AlertBox..., mianowicie Add Alert for changes in page.


Naszym oczom powinien ukazać się nowy panel, gdzie musimy wpisać nazwę śledzonej witryny, rzeczoną ścieżkę tj. lokalizator XPath oraz nasze wyrażenie. Znalezienie lokalizatora może być czasem problematyczne. Lokalizator to nic innego jak element strony, który będzie podlegał sprawdzaniu, może to być tabela, ramka, selektor CSS itp. Aby zaznaczyć poprawny selektor, wystarczyć kliknąć na stronie, na element, który nas interesuje. Powinna pojawić się wokół niego czarna ramka. Lokalizację można również wybrać z podmenu, w lewej części panelu:


Reasumując w polu Expression wpisujemy lokalizację, natomiast w polu Regex Filter wklejamy nasze wyrażenie regularne. Jak sprawdzić czy zarówno lokalizacja jak i wyrażenie są poprawne? W dużym podmenu na dole panelu powinny wyświetlić się wyniki. Jeśli odpowiadają one naszym szukanym frazom, w tym przypadku elementowi: Jun 03, 2013, jesteśmy w domu. Jeśli nie, musimy zazwyczaj zmienić ścieżkę XPath, albo poprawić wyrażenie. Te drugie można w łatwy sposób weryfikować za pomocą oprogramowania The Regex Coach. Warto również zmienić wartość pola Check for updates every, gdzie definiujemy w jakich interwałach czasu skrypt będzie weryfikował stronę pod kątem nowej zawartości. Poprawnie skonfigurowane ustawienia dla witryny powinny wyglądać następująco:


 Gdy wtyczka znajdzie zmiany na naszej stronie, oznajmi nam to komunikatem tekstowym w postaci slajdu oraz stosownym dźwiękiem. Ustawieniami witryn można również zarządzać z poziomu panelu, który dostępny jest poprzez kliknięcie ikony w górnym prawym rogu przeglądarki, o którym wspomniałem na początku wpisu. Oczywiście przedstawiony przykład to tylko zarys możliwości wtyczki. Bardziej zaawansowanych użytkowników zainteresuje możliwość łączenia powiadomień w kilka modułów, gdzie powiadomienie wyświetlane jest tylko wtedy, gdy spełnione zostaną wszystkie wymogi danego ustawienia itp. Istnieje również możliwość skonfigurowania powiadomień e-mail o znalezionych zmianach. 

Sama wtyczka prezentuje również uproszczony tryb powiadomień, dla elementów witryn, które podlegają zmianie jedynie pod względem liczbowym np. liczniki wpisów, postów, komentarzy. Jeśli napotkamy taki element, wystarczy najechać na niego kursorem myszy, kliknąć prawym klawiszem myszy oraz z podmenu AlertBox wybrać funkcję Add Alert for changes in clicked element:


Wtyczka automatycznie poinformuje nas, gdy pojawi się zmieniona wartość, w tym przypadku Komentarze (1) itd. Jest to bardzo przydatne, gdy śledzimy konkretny wpis np. na forum tematycznym.

Choć twórca wtyczki AlertBox pracował nad uniwersalną platformą dla urządzeń mobilnych oraz innych przeglądarek tj. Google Chrome pod nazwą Alert.Do, projekt został zamknięty z nieznanych przyczyn. Niemniej w tym miejscu chciałbym zwrócić waszą uwagę na wtyczkę Page Monitor dla przeglądarki Chrome właśnie. Jest ona uproszczoną wersją AlertBox, niemniej również wspiera wyrażenia regularne, co jest kluczowe. Dodatkowo charakteryzuje się nieco przyjaźniejszym interfejsem dla początkujących użytkowników. Dodawanie witryn odbywa się na podobnej zasadzie, natomiast wyrażenia regularne mogą być zdefiniowane w podmenu advanced:



Dużym plusem wtyczki Page Monitor jest fakt, że nie wymaga od użytkownika definiowania ścieżki lokalizacji tj. XPath, co może być atutem dla mniej wprawionych użytkowników

Wspomniane instrukcje mogą wydawać się nieco zagmatwane, a proces dodawania nowych witryn czasochłonny, niemniej nic bardziej mylnego. Po opanowaniu wyrażeń regularnych, dodawanie kolejnych witryn do sprawdzenia jest bajecznie proste, a dodatkowo przekłada się na naszą produktywność i oszczędność czasu w dłuższej perspektywie, co jest kluczowe w dzisiejszych czasach. Czego mi brakuje w obydwu wtyczkach, to moduł tworzenia własnych kanałów RSS, na podstawie zdefiniowanych stron, dzięki czemu moglibyśmy otrzymywać powiadomienia np. na naszym smartfonie, dzięki popularnym czytnikom RSS. Tego typu rozwiązanie wymaga jednak integracji z hostingiem usługodawcy, w tym przypadku twórcy wtyczki, co wymaga dodatkowych nakładów z ich strony. Jeśli znacie lepsze, bądź po prostu inne metody na śledzie ulubionych stron, napiszcie proszę komentarz.

Brak komentarzy:

Prześlij komentarz