Pobieranie zdjęć z kataloguTworzenie i dostosowywanie

Parser w Pythonie, który zapisuje zdjęcia z ogólnodostępnego katalogu do folderu, nazwane kodem produktu, wraz z tabelą

Zwykle gotowe w ok. 15 minutPoprawki w cenieKontrola jakości
Pakiety
Ochrona płatnościSzczegóły
  • Poprawki w ramach pakietu są bezpłatne.
  • Jeśli nie odpowiesz w ciągu 3 dni od dostarczenia pracy, zostanie ona zaakceptowana automatycznie.

Pieniądze są rezerwowane w chwili płatności i przekazywane dopiero po akceptacji pracy.

Parser w Pythonie, który zapisuje zdjęcia z ogólnodostępnego katalogu do folderu, nazwane kodem produktu, wraz z tabelą

Przykładowy rezultat

Przykład dla pakietu Standard

Parser katalogu dostawcy narzędzi ogrodowych do Excela

Jak wygląda wynik

IndeksNazwaCenaDostępnyWagaZdjęcie
GT-1042Sekator, 20 mm18,90Tak0,24 kg…/gt-1042.jpg
GT-1187Piła składana, 210 mm24,50Tak0,31 kg…/gt-1187.jpg
GT-2210Nożyce do żywopłotu, ostrza faliste39,00Nie1,10 kg…/gt-2210.jpg
GT-3305Łopatka ogrodowa, nierdzewna9,80Tak0,18 kg…/gt-3305.jpg
GT-4120Wąż ogrodowy 25 m, 1/2"42,00Tak2,90 kg…/gt-4120.jpg

Plik w przykładzie zawiera 1236 produktów z 52 stron listy.

Fragment kodu

def product_links(list_url: str) -> Iterator[str]:
    """Linki do stron produktów z każdej strony listy, z przejściem przez „Dalej”."""
    url: str | None = list_url
    while url:
        page = fetch(url)
        for card in page.select("div.product-card a.title"):
            yield urljoin(url, card["href"])
        next_link = page.select_one("a.pagination-next")
        url = urljoin(url, next_link["href"]) if next_link else None


def fetch(url: str) -> BeautifulSoup:
    """Jedna ogólnodostępna strona, w spokojnym tempie: przerwa między zapytaniami i kilka prób przy błędach."""
    for attempt in range(3):
        time.sleep(settings.delay_seconds)
        response = session.get(url, timeout=30)
        if response.status_code == 200:
            return BeautifulSoup(response.text, "html.parser")
        log.warning("%s odpowiedział kodem %s, próba %d z 3", url, response.status_code, attempt + 1)
    raise ScraperError(f"{url} nie otworzył się po 3 próbach")

Pliki: archiwum ZIP z plikami scraper.py, settings.ini (strona startowa, przerwa między zapytaniami, nazwa pliku), requirements.txt oraz README o instalacji i uruchomieniu. Parser czyta tylko ogólnodostępne strony, jedną co 2 sekundy, i najpierw sprawdza plik robots.txt strony. Klient uruchamia go na własnym komputerze.

Klient: internetowy sklep ogrodniczy, który odsprzedaje narzędzia dostawcy; dostawca ma na swojej stronie ogólnodostępny katalog, ale nie udostępnia pliku z cennikiem. Zadanie: przejść przez strony listy w katalogu, otworzyć każdą stronę produktu i zapisać do Excela indeks, nazwę, cenę, dostępność, wagę i link do głównego zdjęcia, żeby raz w tygodniu porównywać ceny.

Klient i wszystkie dane są wymyślone.

O usłudze

Gdy przenosisz własny katalog do nowego sklepu albo dostawca pozwala Ci korzystać ze swoich zdjęć produktów, ten parser zapisuje zdjęcia z ogólnodostępnych stron katalogu do folderu i nazywa każdy plik kodem produktu, a do tego tworzy tabelę łączącą kod, nazwę produktu, link do zdjęcia i nazwę pliku. Prześlij stronę, kategorię i stronę produktu, jedną lub dwie strony zapisane z przeglądarki oraz sposób nazywania plików. Dostajesz kod w Pythonie, plik ustawień i README i uruchamiasz go na swoim komputerze, więc pliki trafiają prosto do Ciebie. Zapisuj tylko zdjęcia, z których możesz korzystać: własne lub te, na które pozwala właściciel. Pliki są zapisywane w takiej postaci, w jakiej udostępnia je strona. Czyta ogólnodostępne strony w spokojnym tempie i nigdy się nie loguje ani nie obchodzi captchy czy zabezpieczeń. To Ty oceniasz, czy regulamin strony na to pozwala; późniejsza zmiana układu wymaga aktualizacji.

Co obejmuje usługa

  • Co otrzymaszArchiwum ZIP z kodem w Pythonie, plikiem ustawień i plikiem README z instrukcją krok po kroku; kod widać też na stronie zamówienia.
  • Pliki nazwane po TwojemuKodem produktu, z _1, _2, _3 dla kolejnych zdjęć
  • Tabela do kompletuKod, nazwa produktu, link do zdjęcia i nazwa pliku
  • Największa wersjaGdy strona prowadzi do większego zdjęcia, pobiera właśnie je
  • Spokojne tempoPrzerwa między stronami ustawiana w ustawieniach
  • Działa na Twoim komputerzeWindows, macOS lub Linux, z Pythonem

Jak to działa

  1. 1
    StronyPodajesz katalog, zapisaną stronę produktu i nazwy plików
  2. 2
    ParserPiszemy kod i instrukcję uruchomienia
  3. 3
    UruchomienieUruchamiasz go i przeglądasz pierwszy folder ze zdjęciami
  4. 4
    ZmianyZgłaszasz poprawki w ramach pakietu i przesyłasz ewentualny komunikat o błędzie

Czego potrzebujemy od Ciebie

Strona i konkretne podstrony: link do kategorii i do jednej strony produktu oraz mniej więcej liczba produktów i zdjęć. Jak nazywać pliki, np. kodem produktu z _1, _2. Pola tabeli, których potrzebujesz oprócz nazwy pliku. Jedna lub dwie takie strony zapisane z przeglądarki (Plik > Zapisz stronę jako). I Twoje potwierdzenie, że zdjęcia są Twoje albo że właściciel pozwala Ci z nich korzystać.

Zapytamy Cię:

  • Która strona i jakie podstrony?
  • Jak nazywać pliki
  • Mniej więcej ile zdjęć?
  • Czyje to zdjęcia?

Porównaj pakiety

PakietyPodstawowyZdjęcia z Twoich linków do produktów83 złStandardCała kategoria162 złPremiumDo 3 stron lub sekcji282 zł
Termin1 dzień2 dni3 dni
Poprawki123
Strony11do 3
Rodzaje stron12 (kategoria i produkt)do 3
Polado 10do 25do 25 na każdej
Przechodzi przez kolejne strony listyNieTakTak
Plik z wynikamiCSVExcel lub CSVExcel, CSV lub JSON
Bez duplikatów, wznawia pracę od miejsca, w którym przerwałNieNieTak
Wynikpliki zdjęć + tabelapliki zdjęć + tabelapliki zdjęć + tabela
Zamów PodstawowyZamów StandardZamów Premium

Ochrona płatności

Płacisz przy składaniu zamówienia, ale pieniądze są przekazywane tylko za zaakceptowaną pracę.

  • Stała cenaCena pakietu nie zmienia się po zapłacie.
  • Pieniądze są zarezerwowanePrzy płatności kwota jest tylko rezerwowana. Serwis otrzymuje ją dopiero po akceptacji pracy.
  • Sprawdzone przed dostarczeniemKażdy wynik przechodzi kontrolę jakości, zanim do Ciebie trafi, a przed akceptacją widzisz go na stronie zamówienia.
  • Bezpłatne poprawkiProś o poprawki w ramach briefu tyle razy, ile przewiduje pakiet.
  • Akceptacja po 3 dniachJeśli w ciągu 3 dni od dostarczenia pracy ani jej nie zaakceptujesz, ani nie poprosisz o poprawki, zostanie zaakceptowana automatycznie. Jeśli po dostarczeniu napiszesz na czacie zamówienia, zamówienie czeka; po naszej odpowiedzi możemy ponownie uruchomić odliczanie 3 dni i poinformujemy o tym na czacie.
  • Ponowne wykonanie lub pełny zwrot pieniędzyJeśli wynik nie odpowiada Twojemu briefowi, a poprawki tego nie naprawiły, lub praca trwa ponad dwa razy dłużej niż termin, napisz na czacie zamówienia: wykonamy pracę ponownie albo zwrócimy całą płatność.
Jak to działa →

Pytania i odpowiedzi

Czy mogę pobrać dowolne zdjęcia, które znajdę?

Nie. Zdjęcia należą do ich właścicieli, więc parser jest przeznaczony do zdjęć, z których możesz korzystać: z Twojego własnego katalogu albo z katalogu dostawcy za jego zgodą. Uzyskanie tej zgody jest po Twojej stronie.

Czy zmieni rozmiar zdjęć albo usunie znaki wodne?

Nie. Pliki są zapisywane w takiej postaci, w jakiej udostępnia je strona, bez zmiany rozmiaru, formatu ani edycji, a znaków wodnych nigdy nie usuwamy.

Czy może pobierać z Grafiki Google, Amazona lub mediów społecznościowych?

Nie. Google, Amazon, LinkedIn i media społecznościowe nie wchodzą w grę: ich regulaminy tego zabraniają, a zdjęcia należą tam do wielu różnych osób.

Ile miejsca na dysku będzie potrzebować?

To zależy od strony: zdjęcia produktów mają często od 200 KB do 1 MB każde. Uruchom go najpierw na jednej kategorii i pomnóż wynik.

A jeśli strona się zmieni?

Parser działa ze stronami w ich obecnej formie. Późniejsza zmiana układu wymaga aktualizacji, która jest nowym zamówieniem.

Nie ma tu odpowiedzi?

Pakiety