Organizacyjne
Deadline: to zadanie jest na zaliczenie (TAK/NIE), trzeba je oddać na drugim lub trzecim laboratorium osobie, która prowadzi zajęcia.
To zadanie wymaga pythona. Być może nie umiesz jeszcze pythona w ogóle. Na końcu tej strony znajdziesz przydatne informacje.
Zadanie
W tym zadaniu masz napisać program, który przygotuje statyczną witrynę internetową i wystawi ją “w internecie”.
Precyzyjniej:
- Należy napisać program, który ściągnie stronę internetową poświęconą jakiemuś wybranemu przez siebie tematowi, na przykład:
- TikTokerom (https://www.favikon.com/blog/the-20-most-famous-tiktok-influencers-in-the-world)
- językom programowania (https://www.tiobe.com/tiobe-index/)
- otwarciom szachowym (https://www.thechesswebsite.com/chess-openings/)
ważna informacja: strona ta powinna zawierać listę elementów, które można łatwo zescrapować (np. lista języków programowania, lista otwarć szachowych, lista tiktokowych influencerów), lista ta może być w formie tabeli, listy, itp.
- Program ten powinien przetworzyć stronę internetową i wygenerować z niej plik w formacie markdown, który będzie zawierał listę elementów zescrapowanych z internetu wraz z jakimiś dodatkowymi informacjami (np. opis, link, obrazek, itp.)
- Następnie należy (przy użyciu biblioteki w rodzaju https://github.com/MarioVilas/googlesearch, https://github.com/deedy5/duckduckgo_search) wyszukać w internecie dodatkowe informacje na temat każdego z elementów zescrapowanych z internetu.
- Następnie należy przygotować witrynę internetową w formacie markdown, która będzie zawierała stronę statyczną, obrazki, dane zescrapowane z internetu (patrz punkt 2) i inne informacje, które uważasz za istotne.
Witryna internetowa
Witryna powinna zawierać
- co najmniej jedną stronę statyczną opisującą wybrany przez Ciebie temat
- listę zescrapowaną z internetu
- podstronę dla każdej z pozycji
Wystawianie
Witryna powinna być wygenerowana przez Jekylla lub coś podobnego (np Hugo).
Powinna być wystawiona na github.io lub na students.
Wystawianie na github.io jest opisane tutaj: https://pages.github.com/
Przykład
Przykładowe zrzuty ekranu z witryny internetowej, którą przygotowałem na potrzeby tego zadania:
- strona główna:
- strona z listą:
- strona z elementem:
Dodatkowe uwagi
https://docs.python.org/3/tutorial/ to jest dobry tutorial do pythona.
Jeśli nie znasz się na pythonie, to pewnie musisz zainstalować środowisko wirtualne https://packaging.python.org/en/latest/guides/installing-using-pip-and-virtual-environments/ w ten sposób nie zepsujesz sobie systemu operacyjnego. Nie rób sudo pip install
!
W trakcie rozwiązywania trzeba też będzie ściągnąć strony z internetu i stworzyć własne strony w formacie markdown:
- https://requests.readthedocs.io/en/latest/
- https://aksakalli.github.io/jekyll-doc-theme/docs/cheatsheet/
Możesz użyć dowolnych narzędzi do zescrapowania strony internetowej, ale musisz napisać własny program, który to zrobi. Mogą się tu przydać:
- BeautifulSoup
- Moduł re z biblioteki standardowej Pythona (ale uwaga: HTML nie jest językiem regularnym i można się mocno zawieść)