Przedstawię poniżej jak można automatycznie pobierać opisy z katalogów książek, opisy obiektów ze stron muzeów, archiwów czy też oferty ze sklepów lub portali ogłoszeniowych.
Prezentowane narzędzie tworzy plik wynikowy w popularnym formacie csv dzięki czemu daje możliwość automatycznego pobierania danych ze stron www bez potrzeby angażowania informatyka. Można je zaliczyć do grupy parser stron www online.
Przy małych zastosowaniach (jak dla biblioteki) wystarczy jego bezpłatna funkcjonalność. Bezpłatnie nie znaczy za darmo bo wymaga podpięcia pod konto gooogle czy fejsbuka więc płacimy prywatnością.
import.io bo o nim mowa działa w przeglądarce i automatycznie zbiera strukturyzowane informacje, a następnie pozwala je zachować w różnych formatach. Na potrzeby stworzenia bota do twittera potrzebny będzie format danych csv, ale można dane również pobrać w formatach JSON lub pdf.
Opis jak pobierać dane
Pracę zaczynamy od przygotowania linka skąd chcemy pobierać dane, w moim przypadku to kolekcja książek z The Metropolitan Museum
Dokonałem wyboru kolekcji do pobrania z następującymi parametrami:
- książki
- tylko z domeny publicznej
- po 100 wyników na stronie.
Dzięki temu otrzymałem link bazowy jak poniżej
http://www.metmuseum.org/art/collection#!?=&perPage=100&material=Books&showOnly=openaccess&sortBy=Relevance&sortOrder=asc&offset=0&pageSize=0
Następnie trzeba sprawdzić co się zmienia w adresie po przełączeniu na drugą (i kolejne) stronę wyników
http://www.metmuseum.org/art/collection#!?=&perPage=100&material=Books&showOnly=openaccess&sortBy=Relevance&sortOrder=asc&offset=100&pageSize=0
http://www.metmuseum.org/art/collection#!?=&perPage=100&material=Books&showOnly=openaccess&sortBy=Relevance&sortOrder=asc&offset=200&pageSize=0
jak widać zmienia się (rośnie) parametr offset. Bogaty w tę wiedzę zalogowałem się na stronie import.io i utworzyłem [New Extractor] na bazie startowego adresu nowe zadanie. Pokazała się ładna tabelka którą zapisałem. Wynik można dopieścić jeśli jest taka potrzeba dodając własne kolumny.
Przy rozbudowanych zasobach warto włączyć [Show URL generator] i podmienić wartość parametru offset na generujący się automatycznie.
W moim przypadku ustawiłem od 0 do 900 krok co 100. Dzięki czemu wygenerują się linki pobierające dane 1000 obiektów. Czasem trzeba się naklikać bo mechanizm automatycznego wybierania pola działa kiepsko. Twardziele mogą wprowadzić {Parametr-1} i kolejne „z palca” gdzie trzeba, cierpliwi mogą dodawać adresy ręcznie w okienku poniżej pomijając generator.
http://www.metmuseum.org/art/collection#!?=&perPage=100&material=Books&showOnly=openaccess&sortBy=Relevance&sortOrder=asc&offset={Parameter-1}&pageSize=0
Po zmodyfikowaniu linka bazowego klikamy [Add to list]
Jeżeli przerobiliśmy link prawidłowo to adresy z których dane będą pobierane pojawią się na liście pobierania (ja klikam dodatkowo [save] żeby nie znikły przez przypadek)
Kolejnym krokiem jest uruchomienie pobierania danych czerwonym guzikiem [Run URLs]
Jak zdalny serwis trochę popracuje pojawi się okno z wynikami pobierania zebranych danych. W przypadku mojego zapytania pobieranie danych ze strony www trwało około 2 minut.
I to w sumie koniec instrukcji jak automatycznie pobierać dane ze stron www :)
Uzyskany gotowy plik opis tysiąca obiektów z Muzeum będzie źródłem danych do karmienia twitterowego bota. Ponieważ nie ustawiałem własnych kolumn plik będzie wymagał dodatkowej obróbki.
Podsumowanie narzędzia do zbierania danych ze stron www
import.io jako narzędzie do pobierania danych z różnych katalogów sprawdza się dobrze pod warunkiem że zasób źródłowy jest poprawnie udostępniony i opisany.
Narzędzie posiada funkcje które umożliwiają zbudowanie własnej struktury pobieranych danych (np. zdjęcie, opis, cena, miasto) dzięki czemu ograniczamy ich dalszą obróbkę za pomocą arkusza kalkulacyjnego czy innego programu.
Można również grepować strony pojedyńcze dzięki czemu zebrałem dane z katalogu bibliotecznego i postawiłem na twitterze bota z nowościami i najczęściej czytanymi pozycjami w bibliotece.
działanie bota można zobaczyć pod adresem https://twitter.com/multibiblioteka
Jeden komentarz