Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Elektromarket #6

Open
Bulb1 opened this issue Feb 12, 2025 · 1 comment
Open

Elektromarket #6

Bulb1 opened this issue Feb 12, 2025 · 1 comment
Assignees

Comments

@Bulb1
Copy link
Contributor

Bulb1 commented Feb 12, 2025

Napisanie uniwersalnego skryptu do pobierania informacji o produktach ze strony tytułowego sklepu. Skrypt powinien przechodzić przez kolejne strony sklepu (paginacja) i dla każdego produktu pobierać następujące informacje:

Tytuł produktu – nazwa prezentowana na stronie.
Link do strony produktu – URL do podstrony prowadzącej do szczegółowego produktu.
Cena produktu – wartość ceny.
URL obrazka produktu – link do zdjęcia produktu.
Opinie i Oceny – informacje o ocenach i opiniach.
Dane techniczne – specyfikacja produktu, którą można zapisać jako JSON.

Te dane powinny być zapisywane w pliku csv, w którym kolumny są kolejno nazwane ["title", "product_link", "price", "image_url", "reviews", "tech_details"].
Ważne: Plik CSV powinien być tworzony na zasadzie {nazwa sklepu}{dokładna data}, np. sklep_2025-02-12.csv. W ten sam sposób powinny być tworzone pliki logów, w których zapisywane będą informacje o działaniach skryptu oraz o ewentualnych błędach. Plik logu powinien mieć nazwę {log_nazwa sklepu}{dokładna data}, np. log_sklep_2025-02-12.log.
W związku z tym, że strona może dynamicznie ładować treści, warto zastosować np. Selenium wraz z mechanizmami oczekiwania (np. WebDriverWait).
Dodatkowo, trzeba uwzględnić logowanie działań skryptu oraz obsługi błędów, aby w przypadku wystąpienia problemów mieć informacje diagnostyczne.

W przypadku strony elektromarket.pl wstępnie analizując strukture HTML widać, że jest bardziej statyczna, a dynamicznie ładowane są obrazki w celach optymalizacyjnych.
Wiec chyba nie ma potrzeby używać bibliotek zalecanych do scrapowania stron dynamicznie ładowanych.
Można użyć np. beautifulsoup i requests

@PawelW109 PawelW109 self-assigned this Feb 14, 2025
@Bulb1
Copy link
Contributor Author

Bulb1 commented Feb 18, 2025

zmodyfikować skrypt tak, żeby pobierał wyłącznie
{data pobrania} {nazwa_produktu}, {cena} {ocena/opinia} {url_do_produktu}
a do danych technicznych zrobić oddzielny skrypt przechodzący przez {url_do_produktu} pobrany z pierwszego skryptu, żeby móc to potem potencjalnie wykorzystać do większego skryptu do pobierania danych technicznych

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants