Come utilizzare le API Web riposanti in Python

Questo tutorial ti introdurrà alle API web e ti insegnerà come utilizzare le richieste della libreria Python per recuperare e aggiornare le informazioni nelle API web. Imparerai anche come interagire con l'API di Twitter come un esempio funzionante.

Introduzione alle API Web

Un'API (Application Programming Interface) è un framework per la creazione di servizi HTTP che possono essere utilizzati da un'ampia varietà di client. Le API Web utilizzano il protocollo HTTP per gestire le richieste tra il client e il server web.

Alcune delle API più comuni che consentono agli sviluppatori di integrare e utilizzare la loro infrastruttura includono:

  1. API di Google
  2. API di Twitter
  3. API Amazon
  4. API di Facebook

Uno dei motivi più importanti per utilizzare un'API rispetto ad altre fonti di dati statici è perché è in tempo reale. Ad esempio, l'API di Twitter che useremo recupererà i dati in tempo reale dal social network.

Un altro vantaggio è che i dati continuano a cambiare, quindi se dovessi scaricarlo a intervalli, sarebbe un dispendio di tempo.

Utilizzando la libreria Richieste

Per utilizzare un'API, è necessario installare la libreria Python delle richieste. Requests è una libreria HTTP in Python che ti consente di inviare richieste HTTP in Python.

Installa richieste

Nel tuo terminale, digita:

richieste di installazione di pip

Per verificare se l'installazione ha avuto successo, emettere il seguente comando nell'interprete Python o nel terminale:

richieste di importazione

Se non ci sono errori, l'installazione è andata a buon fine.

Come ottenere informazioni da un'API Web

Il metodo GET viene utilizzato per ottenere informazioni da un server web. Vediamo come fare una richiesta GET per ottenere la cronologia pubblica di GitHub.

Usiamo la variabile req per memorizzare la risposta dalla nostra richiesta.

richieste di importazione req = requests.get ('https://github.com/timeline.json')

Ora che abbiamo fatto una richiesta alla timeline di GitHub, prendiamo la codifica e il contenuto contenuto nella risposta.

richieste di importazione req = requests.get ('https://github.com/timeline.json') req.text u '"message": "Ciao, straniero che vaga, se stai leggendo questo probabilmente non lo hai \ \ non vedere il nostro post sul blog un paio di anni prima che annuncia che questa API andrebbe via: http://git.io/17AROg Non temere, dovresti essere in grado di ottenere ciò che ti serve dalla nuova brillante API degli eventi. "," documentation_url ":" https://developer.github.com/v3/activity/events/#list-public-events "
richieste di importazione req = requests.get ('https://github.com/timeline.json') req.encoding 'utf-8'

Le richieste hanno una decodifica JSON incorporata che è possibile utilizzare per ottenere la risposta di una richiesta in formato JSON.

richieste di importazione import json req = requests.get ('https://github.com/timeline.json') req.json () u'documentation_url ': u'https: //developer.github.com/v3/activity / events / # list-public-events ', u'message': u'Hello lì, straniero viandante. Se stai leggendo questo, probabilmente non hai visto il nostro post sul blog un paio di anni prima che annunciasse che questa API andrebbe via: http://git.io/17AROg Non temere, dovresti essere in grado di ottenere ciò di cui hai bisogno invece dalla nuova e brillante API di eventi. '

Come creare e aggiornare le informazioni sull'API Web

I metodi POST e PUT sono entrambi utilizzati per creare e aggiornare i dati. Nonostante le somiglianze, è importante notare che l'utilizzo di una richiesta POST per aggiornare i dati comporterà due voci nell'archivio dati se vengono inviati due elementi identici.

Crea dati (richiesta POST):

r = requests.post ('http://127.0.0.1/api/v1/add_item', data = 'task': 'Shopping')

Aggiorna dati (richiesta PUT):

r = requests.put ('http://127.0.0.1/api/v1/add_item', data = 'task': 'Shopping in 2'))

Lavorare con l'API REST di Twitter

In questa sezione, imparerai come ottenere le credenziali API di Twitter, autenticarti con le API di Twitter e interagire con l'API di Twitter usando Python. 

Sarai anche in grado di recuperare informazioni dagli account Twitter pubblici, come tweet, follower, ecc.

Autenticazione con Twitter

Abbiamo bisogno di autenticarsi con l'API di Twitter prima di poter interagire con esso. Per effettuare questa operazione, attenersi alla seguente procedura:

  1. Vai alla pagina delle app di Twitter.
  2. Clicca su Crea una nuova app (devi accedere a Twitter per accedere a questa pagina). Se non si dispone di un account Twitter, crearne uno.

3. Crea un nome e una descrizione per la tua app e un segnaposto del sito web.

4. Individuare il Scheda Chiavi e codici di accesso e crea il tuo token di accesso.

5. È necessario prendere nota del Token di accesso e Segreto del token di accesso dal momento che ne avrai bisogno per il processo di autenticazione.

6. È inoltre necessario prendere nota del Chiave del consumatore e Segreto dei consumatori.

Ci sono alcune librerie che possiamo usare per accedere all'API di Twitter, ma useremo la libreria python-twitter in questo tutorial.

Installa python-twitter

Per installare python-twitter, usa:

$ pip installa python-twitter 

L'API di Twitter è esposta tramite twitter.Api classe, quindi creiamo la classe passando i nostri token e le nostre chiavi segrete:

import twitter api = twitter.Api (consumer_key = [chiave consumer], consumer_secret = [consumer secret], access_token_key = [token di accesso], access_token_secret = [accesso token secret])

Sostituisci le tue credenziali in alto e assicurati che siano racchiuse tra virgolette, ad esempio consumer_key = "xxxxxxxxxx", ...)

Interrogare su Twitter

Esistono molti metodi per interagire con l'API di Twitter, tra cui:

>>> api.PostUpdates (stato) >>> api.PostDirectMessage (utente, testo) >>> api.GetUser (utente) >>> api.GetReplies () >>> api.GetUserTimeline (utente) >>> api .GetHomeTimeline () >>> api.GetStatus (status_id) >>> api.DestroyStatus (status_id) >>> api.GetFriends (utente) >>> api.GetFollowers ()

Per ottenere dati da Twitter, faremo una chiamata API con l'aiuto di api oggetto che abbiamo creato sopra.

Faremo quanto segue:

  1. Creare un utente variabile e impostarlo su un handle Twitter valido (nome utente).
  2. Chiama il GetUserTimeline () metodo sul api oggetto e passare i seguenti argomenti.

  • un valido handle di Twitter
  • il numero di tweet che vuoi recuperare (contare)
  • un flag per escludere i retweet (questo è fatto usando include_rts = false)

Prendiamo gli ultimi tweet dalla linea temporale Envato Tuts + Code, esclusi i retweet.

import twitter api = twitter.Api (consumer_key = "xxxxxxxxxxxx", consumer_secret = "xxxxxxxxxxxxxx", access_token_key = "314746354-xxxxx", access_token_secret = "xxxxxx") user = "@TutsPlusCode" statuses = api.GetUserTimeline (screen_name = utente, count = 30, include_rts = False) per s negli stati: print s.text 

Il GetUserTimeline () il metodo restituirà una lista degli ultimi 30 tweet, quindi passeremo in rassegna l'elenco e stamperemo le informazioni più importanti (contenuto) da ciascun tweet.

Ecco 6 cose che rendono Yarn il migliore gestore di pacchetti #JavaScript. https://t.co/N4vzIJmSJi Scopri di più sui grafici a barre con la parte 3 di questa serie sulla creazione di grafici interattivi utilizzando Plotly.js. https://t.co/lyKMxSsicJ Scopri le novità con il supporto Git in Xcode 9. https://t.co/7gGu0PV1rV Ecco come creare firme digitali con Swift. https://t.co/kCYYjShJkW In questo suggerimento rapido, scopri come usare Atom come Git GUI. https://t.co/8rfQyo42xM Dai un'occhiata a questi 12 utili plugin di WordPress per i layout di pagina. https://t.co/T57QUjEpu5 Ulteriori informazioni sui grafici a linee nella parte 2 della nostra serie sulla creazione di grafici interattivi utilizzando Plotly.js. https://t.co/nx51wOzSkF Prendi alcuni fantastici omaggi con la nostra speciale offerta per il decimo compleanno, https://t.co/AcIGTiC2re In quest'ultima serie della nostra codifica di un'applicazione in tempo reale con NativeScript: notifiche push. https://t.co/qESFVGVF4L Inizia con i test end-to-end in Angular usando Goniometro. https://t.co/TWhQZe7ihE Scopri come creare un'API to-do con Node, Express e MongoDB. https://t.co/R4DvRYiM90 Qual è il ciclo di vita delle attività Android? https://t.co/VUHsucaC1X Scopri tutto sulla programmazione orientata agli oggetti con JavaScript. https://t.co/bI7ypANOx3 Divertiti con le funzioni in questo ultimo della nostra serie su Kotlin. https://t.co/r2f2TzA5lM Ecco come rendere robusto il tuo codice JavaScript con Flow. https://t.co/rcdjybKL8L Costruisci la tua API to-do con Node e Restify. https://t.co/gQeTSZ6C5k Ecco come mettere a dieta i controller di visualizzazione con MVVM. https://t.co/oJqNungt1O Scopri come inviare la tua nuova app iOS all'App Store. https://t.co/JQwsKovcaI Questa guida è il luogo ideale per sviluppare le tue abilità e iniziare a scrivere plugin in Go. https://t.co/68X5lLSNHp Dai un'occhiata a come testare i componenti in Angular usando Jasmine. https://t.co/V5OTNZgDkR Impara a creare il tuo primo plug-in #WordPress in questo nuovo fantastico corso. https://t.co/695C6U6D7V In quest'ultima serie di componenti per l'architettura Android: LiveData. https://t.co/gleDFbqeAi Fai un tuffo nel sistema del tipo Go. https://t.co/AUM7ZyanRO Dai un'occhiata alla logica serverless con le funzioni di realm. https://t.co/aYhfeMgAZc È partita la parte 4 del corso React crash per principianti! https://t.co/aG5NEa6yG9 Informazioni su accesso social e Firebase in questa nuova aggiunta alla serie. https://t.co/oL5z0krQD3 Creazione di un'applicazione di blogging utilizzando React parte 6 è fuori! Tag https://t.co/OzUaPQEX8E Che cos'è GenServer e perché dovrebbe interessarti? https://t.co/EmQeTBggUK Dai un'occhiata alla parte 3 del corso React crash per le serie di principianti. https://t.co/dflLCUqncO Scopri i pacchetti e le funzioni di base in questa aggiunta alla nostra serie Kotlin da zero. https://t.co/JAo2ckSgZS 

Per recuperare i follower, usiamo il GetFriends () metodo.

importazione Twitter API = twitter.Api (consumer_key = "ftFL8G4yzQXUVzbUCdxGwKSjJ", consumer_secret = "KxGwBe6GlgSYyC7PioIVuZ5tFAsZs7q1rseEYCOnTDIjulT0mZ", access_token_key = "314.746.354-Ucq36TRDnfGAxpOVtnK1qZxMfRKzFHFhyRqzNpTx", access_token_secret = "7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w") user = "@TutsPlusCode" amici = api.GetFriends (SCREEN_NAME = utente) per amico in amici: stampa friend.name

Produzione

Derek Herman Ciano Ta'eed Dropbox Stoyan Stefanov Il JavaScript Ninja Dan Wellman Brenley Dueck Dave Ward Packt Karl Swedberg Envato Tuts + Web Dev_Tips Vahid Ta'eed Jarel Remick Envato Dev. Squadra 🖥 Drew Douglass 📈 Cameron Moll SitePoint John Resig Skellie Chris Coyier Envato Tuts + Envato Tuts + Design Collis

Conclusione

L'API di Twitter può essere utilizzata in larga misura nell'analisi dei dati. Può anche essere utilizzato in complessi problemi di big data e autenticare app. Maggiori informazioni sull'API di Twitter sul sito degli sviluppatori di Twitter.

.