SviluppoPagamento protettoDettagli
- Le revisioni previste dal pacchetto sono gratuite.
- Se non risponde entro 3 giorni dalla consegna, il lavoro viene accettato automaticamente.
Il denaro viene riservato al momento del pagamento e sbloccato solo quando accetta il lavoro.

Esempio di risultato
Parser del catalogo di un fornitore di attrezzi da giardino in Excel
Come appare il risultato
| Articolo | Nome | Prezzo | Disponibile | Peso | Foto |
|---|---|---|---|---|---|
| GT-1042 | Forbici da potatura, 20 mm | 18,90 | Sì | 0,24 kg | …/gt-1042.jpg |
| GT-1187 | Seghetto pieghevole, 210 mm | 24,50 | Sì | 0,31 kg | …/gt-1187.jpg |
| GT-2210 | Cesoie per siepi, lama ondulata | 39,00 | No | 1,10 kg | …/gt-2210.jpg |
| GT-3305 | Trapiantatoio, acciaio inox | 9,80 | Sì | 0,18 kg | …/gt-3305.jpg |
| GT-4120 | Tubo da giardino 25 m, 1/2" | 42,00 | Sì | 2,90 kg | …/gt-4120.jpg |
Il file dell'esempio contiene 1.236 prodotti da 52 pagine di elenco.
Una parte del codice
def product_links(list_url: str) -> Iterator[str]:
"""Link alle pagine prodotto da ogni pagina dell'elenco, seguendo 'Avanti'."""
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:
"""Una pagina pubblica, a un ritmo discreto: una pausa tra le richieste e qualche tentativo in caso di errore."""
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 ha risposto %s, tentativo %d di 3", url, response.status_code, attempt + 1)
raise ScraperError(f"{url} non si è aperta dopo 3 tentativi")
File: un archivio ZIP con scraper.py, settings.ini (la pagina iniziale, la pausa tra le richieste, il nome del file), requirements.txt e un README su come installarlo ed eseguirlo. Legge solo pagine pubbliche, una ogni 2 secondi, e controlla prima il file robots.txt del sito. Il cliente lo esegue sul proprio computer.
Cliente: un negozio online di giardinaggio che rivende gli attrezzi di un fornitore; il fornitore ha un catalogo pubblico sul suo sito ma nessun file di listino. Compito: scorrere le pagine di elenco del catalogo, aprire ogni pagina prodotto e salvare in Excel codice articolo, nome, prezzo, disponibilità, peso e link alla foto principale, per confrontare i prezzi una volta alla settimana.
Il cliente e tutti i dati sono inventati.
Informazioni sul servizio
Questo parser legge le pagine prodotto pubbliche di un concorrente e mette i prezzi in una tabella da confrontare con i suoi: nome del prodotto, codice, prezzo, prezzo precedente, sconto, disponibilità e link, con la data del controllo. Ci indichi il sito, i link a una categoria e a una pagina prodotto, i campi nell'ordine della sua tabella e una o due di quelle pagine salvate dal browser. Scriviamo il codice in Python sulla loro struttura reale, con un file di impostazioni e un README. Lo esegue lei sul suo computer ogni volta che vuole prezzi aggiornati, e la tabella arriva direttamente a lei. Legge solo pagine pubbliche a un ritmo discreto e non accede mai con login, non aggira captcha o protezioni e non raccoglie dati personali. È lei a valutare se le condizioni del sito lo consentono, e un successivo cambio di struttura richiede un aggiornamento.
Cosa è incluso
- Cosa riceveUn archivio ZIP con il codice Python, un file di impostazioni e un README con le istruzioni passo passo; il codice è visibile anche nella pagina dell'ordine.
- Colonne dei prezziPrezzo, prezzo precedente e sconto come numeri separati
- Codici per il confrontoIl codice o il codice a barre del concorrente, quando la pagina lo mostra
- Data di ogni controlloOgni riga riporta la data in cui è stata raccolta
- Ritmo discretoUna pausa tra le pagine che imposta lei
- Gira sul suo computerWindows, macOS o Linux; lo riavvii per avere prezzi aggiornati
Come funziona
- 1PagineLei indica il sito del concorrente, una categoria e una pagina prodotto salvata
- 2ParserScriviamo il codice su quelle pagine e la guida per eseguirlo
- 3AvvioLo esegue e confronta le prime righe con il sito
- 4ModificheChiede modifiche nei limiti del pacchetto e invia eventuali messaggi di errore
Cosa ci serve da lei
Il sito del concorrente e le pagine esatte: un link a una categoria e a una pagina prodotto, e circa quanti prodotti ci sono. I campi che le servono nell'ordine della sua tabella, es. nome, codice, prezzo, prezzo precedente, disponibilità, link. Una o due di quelle pagine salvate dal browser in HTML (File > Salva pagina con nome) o degli screenshot. CSV o Excel, e dove lo eseguirà.
Le chiederemo:
- Quale sito del concorrente e quali pagine?
- I campi che le servono
- Circa quanti prodotti?
- Ogni quanto lo eseguirà?
Confronto dei pacchetti
| Pacchetti | BasePrezzi dalle pagine prodotto19 € | StandardUn'intera categoria38 € | PremiumFino a 3 concorrenti67 € |
|---|---|---|---|
| Tempi di consegna | 1 giorno | 2 giorni | 3 giorni |
| Revisioni | 1 | 2 | 3 |
| Siti | 1 | 1 | fino a 3 |
| Tipi di pagina | 1 | 2 (categoria e prodotto) | fino a 3 |
| Campi | fino a 10 | fino a 25 | fino a 25 su ciascuno |
| Scorre le pagine di un elenco | No | Sì | Sì |
| File dei risultati | CSV | Excel o CSV | Excel, CSV o JSON |
| Duplicati rimossi, riprende da dove si è fermato | No | No | Sì |
| Ordina Base | Ordina Standard | Ordina Premium |
Pagamento protetto
Paga al momento dell'ordine, ma il denaro viene sbloccato solo per un lavoro accettato.
- Prezzo fissoIl prezzo del pacchetto non cambia dopo il pagamento.
- Il denaro viene riservatoAl pagamento, l'importo viene solo riservato. Passa a Dleex quando accetta il lavoro.
- Verificato prima della consegnaOgni risultato passa un controllo di qualità prima di arrivare a lei, e lo vede nella pagina dell'ordine prima di accettarlo.
- Revisioni gratuiteRichieda revisioni nell'ambito del suo brief tante volte quante ne prevede il pacchetto.
- Accettazione dopo 3 giorniSe entro 3 giorni dalla consegna non accetta il lavoro né richiede una revisione, il lavoro viene accettato automaticamente. Se scrive nella chat dell'ordine dopo la consegna, l'ordine resta in attesa; dopo la nostra risposta potremmo far ripartire i 3 giorni e glielo indicheremo nella chat.
- Rifacimento o rimborso totaleSe il risultato non corrisponde al suo brief e le revisioni non hanno risolto il problema, oppure il lavoro richiede più del doppio dei tempi di consegna previsti, scriva nella chat dell'ordine: rifaremo il lavoro o le rimborseremo l'intero pagamento.
Domande e risposte
Abbinerà i prodotti del concorrente ai miei?
Salva codice, codice a barre e nome del concorrente come li mostra la pagina, così può abbinarli al suo elenco in Excel. Se i codici sono diversi dai suoi, l'abbinamento spetta a lei: non tiriamo a indovinare quali prodotti sono gli stessi.
Può vedere i prezzi per utenti registrati o per l'ingrosso?
No. Legge i prezzi che una pagina pubblica mostra a qualsiasi visitatore. I prezzi dietro un account, un accesso per grossisti o un captcha restano fuori portata.
È consentito raccogliere i prezzi di un concorrente?
Raccogliere prezzi pubblici è consentito in molti casi, ma le condizioni dei siti e le leggi sui dati variano da paese a paese, quindi è lei a decidere se può raccoglierli e usarli. Il parser non accede mai con login, non aggira protezioni e non raccoglie dati personali.
Può raccogliere prezzi da Amazon, Google o dai negozi nei social network?
No. Le loro condizioni lo vietano, e lo stesso vale per LinkedIn e gli altri social network. Per questi dati usi l'esportazione ufficiale o l'API del servizio.
E se il concorrente cambia il sito?
Il parser segue le pagine come sono oggi. Dopo un cambio di struttura serve un aggiornamento, che è un nuovo ordine. Se il sito limita le visite, il parser non aggira il limite.
Non hai trovato la risposta?


