"## 2. Sprawdzenie czy przykładowy robot działa \n",
"\n",
"\n",
"W katalogu projektu należy odpalić:\n",
"\n",
" stack install # może trwać długo za pierwszym razem\n",
" stack exec almanachmuszyny\n",
"\n",
"Jeżeli instalacja nie powiedzie się, być może należy zainstalować paczki libpcre3 libpcre3-dev , np. na ubuntu:\n",
"\n",
" sudo apt install libpcre3 libpcre3-dev\n",
" \n",
" \n",
" \n",
"### Metoda opracowania robota z przykładu:\n",
"\n",
"##### Znalezienie wyszystkich stron z rocznikami:\n",
"\n",
"W przeglądarce należy znaleźć wszystkie linki do stron z rocznikami. Najłatwiej zrobić to przez podejrzenie źródła strony. Na przykład można kliknąć prawym przyciskiem myszy na link i wybrac \"Inspect Element\" (działa na chrome).\n",
"\n",
"![inspect](./obrazki/02-inspect.png)\n",
"\n",
"\n",
"Łatwo zauważyć, że wszystkie linki mają klasę \"roczniki\". Dlatego należy odwołać sie w robocie do tej klasy poprzez xpath w pliku app/almanachmuszyny.hs :\n",
"\n",
" extractRecords = extractLinksWithText \"//a[@class='roczniki']\" -- pary adres-tytuł \n",
" \n",
"Następna linijka kodu służy oczyszczeniu stringa z tytułem rocznika:\n",
"\n",
" >>> second (arr $ replace \"\\r\\n \" \" \")\n",
"\n",
"\n",
"Następnie, łatwo zauważyć, że robiąc prostą manipulację linkiem z :\n",
"dostajemy stronę spis-treści ze wszystkimi pdf-ami. Dlatego robimy podmianę linku:\n",
"\n",
" >>> first (arr ((++\"tr\") . init)) -- modyfikujemy pierwszy element pary, czyli adres URL\n",
" \n",
" \n",
"Nastęnie ze wszystkich podanych stron ze spisem treści wybieramy wszystkie pdfy korzystając z polecenia:\n",
"\n",
" >>> first (extractLinksWithText \"//li/a[contains(@href,'.pdf')]\")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 3. Opracowanie swojego robota\n",
"\n",
"Opracuj swojego robota wzorując się na pliku almanachmuszyny.hs. (Ale dodaj swój plik, nie zmieniaj almanachmuszyny.hs!)\n",
"Twój robot powinien działać na serwisie wybranym z listy na którą należy się zapisać (na dole tej strony).\n",
"\n",
"Dopisz specyfikację swojego robota do shadow-library.cabal.\n",
"\n",
"Pracuj nad swoim robotem, uruchamiaj go w następujący sposób:\n",
"\n",
" stack build\n",
" stack exec mojrobot\n",
" \n",
"mojrobot to przykładowa nazwa- dla swojego projektu użyj innej, znaczącej nazwy\n",
"\n",
"Jeśli publikacja (np. pojedynczy numer gazety) składa się z wielu plików, powinien zostać wygenerowany jeden rekord, w finalUrl powinny znaleźć się URL do poszczególnych stron (np. plików JPR) oddzielone //.\n",
"\n",
"Dla twojego robota przydatne mogą być funkcje zdefiniowane w ShadowLibrary/Core.hs\n",
"\n",
"\n",
"\n",
"##### Problemy z https\n",
"\n",
"W przypadku problemów z https:\n",
"\n",
"Trzeba użyć modułu opartego na bibliotece curl. Paczka Ubuntu została zainstalowana na komputerach wydziałowych. Na swoim komputerze możemy zainstalować paczkę libcurl4-openssl-dev, a\n",
"następnie można sobie ściągnąć wersję twilight-library opartą na libcurl:\n",
"3. [Medycyna Weterynaryjna](http://www.medycynawet.edu.pl/archives) — również historyczne zasoby od 1945 roku, **120 punktów**\n",
"4. [Polskie Towarzystwo Botaniczne](https://pbsociety.org.pl/default/dzialalnosc-wydawnicza/) — wszystkie dostępne zdigitalizowane publikacje!, **130 punktow**\n",
"5. [Czasopisma polonijne we Francji](https://argonnaute.parisnanterre.fr/ark:/14707/a011403267917yQQFAS) — najlepiej w postaci PDF-ów, jak [przykład](https://argonnaute.parisnanterre.fr/medias/customer_3/periodique/immi_pol_lotmz1_pdf/BDIC_GFP_2929_1945_039.pdf), **220 punktów**\n",
"21. [Artykuły o Jujutsu](http://www.kobudo.pl/artykuly_jujutsu.html)\n",
"22. [Wycinki o Taekwon-Do](https://www2.pztkd.lublin.pl/archpras.html#z1996)\n",
"23. [Materiały o kolejnictwie](https://enkol.pl/Strona_g%C5%82%C3%B3wna) **180 punktów**\n",
"24. [Centralny Instytut Ochrony Pracy](http://archiwum.ciop.pl/), znaleźć wszystkie publikacje typu <http://archiwum.ciop.pl/44938>, wymaga trochę sprytu **130 punktów**\n",
"30. [Historia polskiej informatyki](http://klio.spit.iq.pl/a4-wyroby-polskiej-informatyki/a4-2-sprzet/) - wyjątkowo bez datowania\n",
"31. [Zeszyty Formacyjne Katolickiego Stowarzyszenia „Civitas Christania”](http://podkarpacki.civitaschristiana.pl/formacja/zeszyty-formacyjne/), tylko niektóre pliki można zdatować\n",
"32. [Prasa podziemna — Częstochowa](http://www.podziemie.com.pl), również ulotki i inne materiały skanowane - **180 punktów**\n",