Script di Debug: Test API Yahoo Finance (debug_api_yahoo_finance.py)
1. Scopo
Questo script è uno strumento di diagnostica di rete di basso livello per testare la connessione diretta e la risposta dall’API di Yahoo Finance.
Il suo scopo principale è bypassare la libreria yfinance ed eseguire una richiesta HTTP grezza, simulando ciò che la libreria farebbe internamente. Questo ci permette di isolare i problemi e rispondere a domande specifiche:
- La nostra connessione di rete verso i server di Yahoo funziona?
- Il nostro indirizzo IP è stato bloccato o limitato (es. errore
403 Forbidden)? - L’API di Yahoo ha cambiato formato e non restituisce più un JSON valido?
2. Quando si Deve Usare Questo Script?
Questo è il primo strumento da utilizzare quando il YahooFinanceConnector smette di funzionare all’interno di FIRE. Eseguilo per determinare se il problema è esterno (lato Yahoo/rete) o interno (nel nostro codice o nella libreria yfinance).
3. Come si Lancia
Prerequisiti:
- Ambiente virtuale del progetto attivo.
- La libreria
requestsdeve essere installata.
Comando: Assicurati di essere nella directory principale del progetto ed esegui:
python scripts/debug/debug_api_yahoo_finance.py4. Interpretazione dell’Output
L’output ti darà una diagnosi chiara dello stato della connessione:
-
Output di Successo:
codeCode
Status: 200 ... JSON parsing: SUCCESS Symbol: SPYQuesto significa che la connessione è buona, l’API risponde correttamente e il formato dei dati è quello atteso. Se questo test ha successo ma il connettore in FIRE fallisce, il problema è probabilmente nella libreria yfinance o nel nostro codice.
-
Output di Fallimento Comune:
-
Status: 403: Indica un problema di autorizzazione. Yahoo potrebbe aver bloccato temporaneamente il tuo IP.
-
Status: 404: L’URL dell’API potrebbe essere cambiato.
-
Error: … (es. Connection timed out): Indica un problema di rete tra te e i server di Yahoo.
-
JSON parsing: FAILED: La connessione ha funzionato, ma Yahoo ha restituito dati in un formato inaspettato (non JSON), indicando un cambiamento nella loro API.
-
codeCode
Use Arrow Up and Arrow Down to select a turn, Enter to jump to it, and Escape to return to the chat.