Questo script Python utilizza la libreria requests
per interrogare l’API di DuckDuckGo, fornendo una funzionalità di ricerca semplice ma efficace. Si basa su una funzione cerca
che accetta una query di ricerca e restituisce i risultati in formato JSON.
import requests
def cerca(query):
url = "https://api.duckduckgo.com/"
params = {
"q": query,
"format": "json"
}
risposta = requests.get(url, params=params)
if risposta.status_code == 200:
return risposta.json()
else:
print(f'Errore: {risposta.status_code}')
return None
# Utilizzo della funzione
risultato = cerca("Python language")
# Accesso ad AbstractURL e Heading
print(risultato['AbstractURL'])
print(risultato['Heading'])
# Accesso a Result e Text in RelatedTopics
for topic in risultato['RelatedTopics']:
if 'Result' in topic:
print(topic['Result'])
if 'Text' in topic:
print(topic['Text'])
Struttura e Funzionalità
Importazione di Moduli: L’importazione della libreria requests
è una scelta solida per effettuare richieste HTTP in Python.
Funzione cerca
:
Parametri e Richiesta API: La funzione accetta una query di ricerca, costruisce l’URL e i parametri di richiesta, e invia una richiesta GET all’API di DuckDuckGo.
Gestione delle Risposte: La funzione verifica il codice di stato della risposta e restituisce i dati JSON se la richiesta è andata a buon fine. In caso di errore, stampa il codice di errore e restituisce None
.
Elaborazione e Stampa dei Risultati:
La funzione restituisce un dizionario contenente vari campi, come ‘AbstractURL’ e ‘Heading’.
Il ciclo for alla fine dello script itera sui ‘RelatedTopics’, estraendo e stampando i campi ‘Result’ e ‘Text’ se presenti.
Valutazione Tecnica
- Robustezza: Lo script gestisce le risposte di errore dell’API, ma potrebbe essere migliorato con una gestione degli errori più dettagliata, ad esempio riprovando la richiesta o gestendo specifici codici di errore.
- Leggibilità: Lo script è ben organizzato e il codice è facilmente comprensibile, con nomi di variabili e funzioni chiari.
- Estensibilità: La funzione
cerca
può essere facilmente estesa per includere ulteriori parametri di ricerca o per modificare la struttura della richiesta in base alle necessità.
Conclusioni
In sintesi, questo script rappresenta un buon esempio di integrazione di API esterne in Python, mostrando chiarezza, efficienza e buone pratiche di programmazione. Tuttavia, per applicazioni più complesse o in ambienti di produzione, potrebbero essere necessarie ulteriori ottimizzazioni e una gestione degli errori più robusta.