Parser stron internetowychTworzenie i dostosowywanie

Parser stron internetowych w Pythonie, który zbiera publiczne dane ze stron do CSV lub Excela: ceny, katalogi, ogłoszenia

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 stron internetowych w Pythonie, który zbiera publiczne dane ze stron do CSV lub Excela: ceny, katalogi, ogłoszenia

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

Parser zbiera dane widoczne na publicznych stronach internetowych i zapisuje je jako tabelę: ceny i dostępność produktów, katalog dostawcy dla Twojego sklepu, ogłoszenia, oferty pracy, wydarzenia lub artykuły. Podaj stronę i podstrony, wypisz potrzebne pola (nazwa, cena, link, zdjęcie i tak dalej) i prześlij jedną lub dwie takie strony zapisane z przeglądarki (Plik > Zapisz stronę jako) albo ich zrzuty ekranu. Piszemy parser w Pythonie na podstawie rzeczywistej struktury tych stron, a on zapisuje wyniki jako CSV, Excel lub JSON. Dostajesz archiwum z kodem, plik ustawień z adresami i przerwą między stronami oraz README, które wyjaśnia, jak zainstalować Pythona i go uruchomić. Uruchamiasz parser na własnym komputerze, więc dane trafiają prosto do Ciebie; nie zbieramy ich za Ciebie ani nie przechowujemy. Czyta tylko ogólnodostępne strony, w spokojnym tempie, i nigdy się nie loguje, nie obchodzi captchy ani innych zabezpieczeń i nie zbiera danych osobowych, takich jak imiona i nazwiska, e-maile czy numery telefonów. Gdy strona zmieni układ, parser może wymagać aktualizacji. To, czy możesz zbierać i wykorzystywać dane strony zgodnie z jej regulaminem, jest Twoją odpowiedzialnością.

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.
  • Twoje pola, Twoja tabelaKolumny w potrzebnej Ci kolejności
  • Zbudowany na prawdziwych stronachNapisany według struktury przesłanych przez Ciebie stron
  • Spokojne tempoPrzerwa między stronami ustawiana w ustawieniach
  • Działa na Twoim komputerzeWindows, macOS lub Linux, z Pythonem
  • Prosta instrukcjaCo zainstalować i jak uruchomić, krok po kroku

Jak to działa

  1. 1
    StronyPodajesz stronę, pola i jedną lub dwie zapisane podstrony
  2. 2
    ParserPiszemy kod i instrukcję uruchomienia
  3. 3
    UruchomienieUruchamiasz go i sprawdzasz pierwsze wiersze tabeli
  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 listy i do strony pozycji oraz mniej więcej liczba podstron. Pola, których potrzebujesz, w kolejności Twojej tabeli, z przykładem każdego. Jedna lub dwie takie strony zapisane z przeglądarki jako HTML (Plik > Zapisz stronę jako) lub zrzuty ekranu, żeby parser odpowiadał ich rzeczywistej strukturze. Plik z wynikami, którego potrzebujesz (CSV, Excel lub JSON), i gdzie będziesz go uruchamiać.

Zapytamy Cię:

  • Która strona i które podstrony?
  • Potrzebne pola
  • Mniej więcej ile podstron?
  • Plik z wynikami
  • Co jeszcze ma robić

Porównaj pakiety

PakietyPodstawowyParser jednego rodzaju stron94 złStandardLista i strony pozycji185 złPremiumKilka stron lub rodzajów stron335 zł
Termin1 dzień2 dni3 dni
Poprawki123
Strony11do 3
Rodzaje stron12 (lista i pozycja)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
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 parsowanie strony jest legalne?

Zbieranie publicznych danych w wielu przypadkach jest dozwolone, ale regulaminy stron i przepisy o ochronie danych różnią się między krajami, więc to Ty oceniasz, czy możesz zbierać i wykorzystywać te dane. Parser nigdy się nie loguje, nie obchodzi zabezpieczeń ani nie zbiera danych osobowych, co pozwala zachować ostrożność.

Czy zbierzecie dane za mnie?

Nie. Dostajesz parser i uruchamiasz go sam, więc wyniki trafiają prosto do Ciebie, a Ty możesz uruchomić go ponownie, kiedy tylko potrzebujesz świeżych danych.

A jeśli strona się zmieni lub zablokuje parser?

Parser działa ze stronami w ich obecnej formie. Jeśli strona później zmieni układ, parser wymaga aktualizacji, która jest nowym zamówieniem. Czyta w spokojnym tempie, ale strona i tak może ograniczać wizyty; parser nie obchodzi takich ograniczeń.

Czy może parsować Amazona, Google lub media społecznościowe?

Nie. Ich regulaminy zabraniają zbierania danych w ten sposób, wiele ich stron wymaga logowania, a do tego zawierają dane osobowe ludzi. Do takich danych użyj oficjalnego API lub eksportu serwisu.

Czy muszę umieć programować?

Nie. README wyjaśnia, jak jednorazowo zainstalować Pythona, zainstalować jednym poleceniem to, czego potrzebuje parser, i go uruchomić. W przypadku stron, które budują treść JavaScriptem, parser korzysta z biblioteki przeglądarkowej (Playwright), co README także opisuje.

Nie ma tu odpowiedzi?

Pakiety