ProgramowanieOchrona 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.

Przykładowy rezultat
Parser katalogu dostawcy narzędzi ogrodowych do Excela
Jak wygląda wynik
| Indeks | Nazwa | Cena | Dostępny | Waga | Zdjęcie |
|---|---|---|---|---|---|
| GT-1042 | Sekator, 20 mm | 18,90 | Tak | 0,24 kg | …/gt-1042.jpg |
| GT-1187 | Piła składana, 210 mm | 24,50 | Tak | 0,31 kg | …/gt-1187.jpg |
| GT-2210 | Nożyce do żywopłotu, ostrza faliste | 39,00 | Nie | 1,10 kg | …/gt-2210.jpg |
| GT-3305 | Łopatka ogrodowa, nierdzewna | 9,80 | Tak | 0,18 kg | …/gt-3305.jpg |
| GT-4120 | Wąż ogrodowy 25 m, 1/2" | 42,00 | Tak | 2,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
Ten parser zestawia obok siebie ceny tych samych produktów z maksymalnie trzech ogólnodostępnych sklepów internetowych: jeden wiersz na produkt, z ceną, ceną przed obniżką, dostępnością i linkiem z każdego sklepu oraz datą sprawdzenia. Trzy sklepy obejmuje pakiet Premium; pakiety Podstawowy i Standard odczytują jeden sklep, na początek lub na próbę. Produkty są dopasowywane po kodzie, który pokazują sklepy, na przykład kodzie kreskowym lub numerze katalogowym producenta, albo po linkach, które podasz dla każdego produktu: same nazwy różnią się zbyt mocno, żeby bezpiecznie je dopasować. Prześlij strony sklepów, po jednej stronie produktu z każdego zapisanej z przeglądarki oraz swoją listę produktów. Dostajesz kod w Pythonie, plik ustawień i README i uruchamiasz go na swoim komputerze. Czyta ogólnodostępne strony w spokojnym tempie, nigdy się nie loguje ani nie obchodzi captchy czy zabezpieczeń i nie odczytuje Amazona ani Google. To Ty oceniasz, czy regulaminy sklepów na to pozwalają; 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.
- Jeden wiersz na produktCena, dostępność i link z każdego sklepu obok siebie
- Dopasowanie po kodzie lub Twoich linkachKod kreskowy, numer katalogowy producenta lub podane przez Ciebie linki
- Data sprawdzeniaW każdym wierszu, więc uruchomienia można porównywać
- Spokojne tempoPrzerwa między stronami ustawiana w ustawieniach
- Działa na Twoim komputerzeWindows, macOS lub Linux, z Pythonem
Jak to działa
- 1SklepyPodajesz sklepy, zapisane strony produktów i swoją listę produktów
- 2ParserPiszemy kod i instrukcję uruchomienia
- 3UruchomienieUruchamiasz go i sprawdzasz kilka wierszy w każdym sklepie
- 4ZmianyZgłaszasz poprawki w ramach pakietu i przesyłasz ewentualny komunikat o błędzie
Czego potrzebujemy od Ciebie
Trzy sklepy (lub jeden w pakietach Podstawowym i Standard) i po jednej stronie produktu z każdego, zapisanej z przeglądarki (Plik > Zapisz stronę jako). Twoja lista produktów z kodem, który pokazują sklepy, na przykład kodem kreskowym, albo tabela z linkiem do każdego produktu w każdym sklepie. Pola, których potrzebujesz dla każdego sklepu, np. cena, cena przed obniżką, dostępność, link. Mniej więcej liczba produktów. CSV, Excel czy JSON.
Zapytamy Cię:
- Które sklepy?
- Jak dopasować produkty
- Pola dla każdego sklepu
- Mniej więcej ile produktów?
Porównaj pakiety
| Pakiety | PodstawowyJeden sklep na początek79 zł | StandardJeden sklep, cała kategoria158 zł | Premium3 sklepy w jednej tabeli286 zł |
|---|---|---|---|
| Termin | 1 dzień | 2 dni | 3 dni |
| Poprawki | 1 | 2 | 3 |
| Strony | 1 | 1 | do 3 |
| Rodzaje stron | 1 | 2 (kategoria i produkt) | do 3 |
| Pola | do 10 | do 25 | do 25 na każdej |
| Przechodzi przez kolejne strony listy | Nie | Tak | Tak |
| Plik z wynikami | CSV | Excel lub CSV | Excel, CSV lub JSON |
| Bez duplikatów, wznawia pracę od miejsca, w którym przerwał | Nie | Nie | Tak |
| Zamów Podstawowy | Zamów Standard | Zamó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ść.
Pytania i odpowiedzi
Dlaczego tylko pakiet Premium porównuje 3 sklepy?
Każdy sklep ma własne strony, więc każdy potrzebuje osobnej części kodu. Pakiety Podstawowy i Standard obejmują jeden sklep, co jest dobrym sposobem, żeby najpierw wypróbować parser.
A jeśli sklep nie pokazuje kodu kreskowego?
Wtedy prześlij nam tabelę z linkiem do każdego produktu w każdym sklepie. Nie dopasowujemy produktów, zgadując po ich nazwach.
Czy może uwzględnić Amazona, Google Shopping lub sklepy w mediach społecznościowych?
Nie. Amazon, Google, LinkedIn i media społecznościowe nie wchodzą w grę: ich regulaminy tego zabraniają. W przypadku innych sklepów to Ty oceniasz, czy ich regulamin na to pozwala.
Czy może porównać też koszty dostawy?
Tylko wtedy, gdy strona produktu pokazuje je każdemu odwiedzającemu. Nigdy nie dodaje produktów do koszyka, nie wpisuje adresu ani się nie loguje.
Nie ma tu odpowiedzi?


