www-2425

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:

  1. Należy napisać program, który ściągnie stronę internetową poświęconą jakiemuś wybranemu przez siebie tematowi, na przykład:
  1. 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.)
  2. 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.
  3. 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ć

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:

Wskazówki dot. Pythona dla początkujących

Jeśli nie znasz Pythona, polecamy oficjalny tutorial.

Zanim zaczniesz instalować biblioteki Pythona, koniecznie utwórz środowisko wirtualne (venv). Izoluje ono zależności Twojego projektu od globalnych pakietów Pythona w systemie, dzięki czemu:

Jak używać venv (wbudowane w Pythona):

  1. Przejdź do katalogu swojego projektu w terminalu.
  2. Utwórz środowisko wirtualne: python -m venv .venv (zamiast .venv możesz wpisać dowolną inną nazwę)
  3. Aktywuj środowisko:
    • Linux/macOS:
      source .venv/bin/activate
      
    • Windows (cmd):
      .venv\Scripts\activate.bat
      
    • Windows (PowerShell):
      .venv\Scripts\Activate.ps1
      
  4. Po aktywacji, prompt terminala zmieni się, wskazując nazwę środowiska. Teraz możesz bezpiecznie instalować pakiety: pip install requests beautifulsoup4
  5. W celu wyjścia ze środowiska: deactivate

Pamiętaj, że używanie środowiska wirtualnego prawie zawsze jest lepszą opcją niż sudo pip install!

Zarządzanie zależnościami:

Aby ułatwić odtworzenie środowiska na innej maszynie, warto zapisać używane biblioteki w pliku requirements.txt: pip freeze > requirements.txt. W celu zainstalowania wymaganych przez projekt bibliotek zapisanych w pliku requirements.txt można użyć: pip install -r requirements.txt. Pamiętaj aby powyższych poleceń używać po aktywowaniu środowiska wirtualnego.

Dodatkowe uwagi

W trakcie rozwiązywania trzeba też będzie ściągnąć strony z internetu i stworzyć własne strony w formacie markdown:

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ć:

Aby zarzadzać wirtualnym środowiskiem możesz użyć uv - nowoczesnego, bardzo szybkiego narzędzia zastępującego pip i venv. Musisz je najpierw zainstalować (np. przez pipx install uv lub pip install uv).

  1. Przejdź do katalogu projektu.
  2. Utwórz i aktywuj środowisko jednym poleceniem: uv venv
  3. Instaluj pakiety: uv pip install requests beautifulsoup4
  4. W celu zapisania bibliotek: uv pip freeze > requirements.txt
  5. W celu zainstalowania pakietów z pliku: uv pip install -r requirements.txt