Parser dei tassi di cambioSviluppo e personalizzazione

Un parser Python che salva in una tabella tassi di cambio e quotazioni crypto pubblici con l'ora di ogni rilevazione

Di solito pronto in 15 minutiRevisioni incluseControllo di qualità
Pacchetti
Pagamento 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.

Un parser Python che salva in una tabella tassi di cambio e quotazioni crypto pubblici con l'ora di ogni rilevazione

Esempio di risultato

Esempio per il pacchetto Standard

Parser del catalogo di un fornitore di attrezzi da giardino in Excel

Come appare il risultato

ArticoloNomePrezzoDisponibilePesoFoto
GT-1042Forbici da potatura, 20 mm18,90Sì0,24 kg…/gt-1042.jpg
GT-1187Seghetto pieghevole, 210 mm24,50Sì0,31 kg…/gt-1187.jpg
GT-2210Cesoie per siepi, lama ondulata39,00No1,10 kg…/gt-2210.jpg
GT-3305Trapiantatoio, acciaio inox9,80Sì0,18 kg…/gt-3305.jpg
GT-4120Tubo da giardino 25 m, 1/2"42,00Sì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

Uffici di cambio, negozi che fissano i prezzi in più valute e contabili usano questo parser per salvare in una tabella i tassi da pagine pubbliche: valuta o criptovaluta, tasso di acquisto e di vendita, tasso ufficiale, variazione giornaliera quando indicata, la fonte e l'ora della rilevazione. Ci invii le pagine da cui prende i tassi, come la tabella pubblica dei cambi di una banca, e una o due di esse salvate dal browser. Riceve il codice Python, un file di impostazioni e un README e lo esegue sul suo computer quando le serve una rilevazione. I tassi vengono copiati come li mostra la pagina in quel momento: non è un feed in diretta e non dà consulenza finanziaria né previsioni. Quando una fonte ha un feed ufficiale di dati aperti, glielo diciamo. Legge pagine pubbliche a un ritmo discreto e non accede mai con login né aggira captcha o protezioni. È lei a valutare se le condizioni del sito lo consentono; 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.
  • Acquisto e vendita separatiColonne separate, come numeri
  • Ora di ogni rilevazioneData e ora in ogni riga
  • Fonte in una colonnaCosì i tassi di pagine diverse restano distinti
  • Ritmo discretoNon ogni secondo: una pausa che imposta lei
  • Gira sul suo computerWindows, macOS o Linux, con Python

Come funziona

  1. 1
    FontiLei indica le pagine dei tassi e le valute o criptovalute
  2. 2
    ParserScriviamo il codice e la guida per eseguirlo
  3. 3
    AvvioLo esegue e confronta la prima rilevazione con il sito
  4. 4
    ModificheChiede modifiche nei limiti del pacchetto e invia eventuali messaggi di errore

Cosa ci serve da lei

Le pagine da cui prende i tassi, con i link, e le valute o criptovalute che le servono. I campi nell'ordine della sua tabella, es. valuta, acquisto, vendita, tasso ufficiale, variazione, fonte, ora. Una o due di quelle pagine salvate dal browser (File > Salva pagina con nome) o screenshot. Ogni quanto le serve una rilevazione, il formato dei numeri (punto o virgola), e CSV o Excel.

Le chiederemo:

  • Quali pagine?
  • Valute o criptovalute
  • I campi che le servono
  • Ogni quanto lo eseguirà?

Confronto dei pacchetti

PacchettiBaseTassi da una pagina20 €StandardElenco e pagine delle valute39 €PremiumFino a 3 fonti68 €
Tempi di consegna1 giorno2 giorni3 giorni
Revisioni123
Siti11fino a 3
Tipi di pagina12 (elenco e pagina valuta)fino a 3
Campifino a 10fino a 25fino a 25 su ciascuno
Scorre le pagine di un elencoNoSìSì
File dei risultatiCSVExcel o CSVExcel, CSV o JSON
Duplicati rimossi, riprende da dove si è fermatoNoNoSì
Ora della rilevazione in ogni rigaSìSìSì
Ordina BaseOrdina StandardOrdina 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.
Come funziona →

Domande e risposte

Può aggiornare i tassi ogni secondo per il trading?

No. Legge le pagine a un ritmo discreto quando lo avvia, quindi è adatto a una rilevazione oraria o giornaliera, non al trading. Per le quotazioni in tempo reale usi l'API ufficiale di un exchange; le chiavi per quella non entrano mai nel nostro codice.

Posso usare questi tassi per i miei prezzi o la contabilità?

Quale fonte valga come ufficiale per lei è una decisione sua e del suo commercialista. Il parser copia i tassi come li mostra la pagina; non diamo consulenza finanziaria.

Può leggere il mio saldo o i tassi dentro un account di un exchange?

No. Non accede mai con login, e password, token e chiavi non finiscono mai nel codice né a noi.

Quali siti sono esclusi?

Google, Amazon, LinkedIn e i social network, le pagine dietro un captcha o un accesso, e i tassi mostrati come immagini. Per gli altri siti è lei a valutare se le condizioni lo consentono. Dopo un cambio di struttura il parser richiede un aggiornamento.

Non hai trovato la risposta?

Pacchetti