Slik bruker du avslappende web-APIer i Python

Denne opplæringen vil introdusere deg til web-APIer og lære deg hvordan du bruker forespørsler Python-biblioteket for å hente og oppdatere informasjon i web-APIer. Du vil også lære å kommunisere med Twitter API som et fungerende eksempel.

Introduksjon til web-APIer

Et API (Application Programming Interface) er et rammeverk for å bygge HTTP-tjenester som kan brukes av et bredt utvalg av kunder. Web-APIer bruker HTTP-protokollen til å håndtere forespørsler mellom klienten og webserveren.

Noen av de vanligste APIene som gjør det mulig for utviklere å integrere og bruke infrastrukturen, er:

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

En av de viktigste grunnene til å bruke en API i motsetning til andre statiske datakilder er fordi det er sanntid. For eksempel vil Twitter-API-en vi skal bruke, hente sanntidsdata fra det sosiale nettverket.

En annen fordel er at dataene fortsetter å endres, så hvis du skulle laste det ned med intervaller, ville det være tidkrevende.

Bruke Forespørselsbiblioteket

For å kunne bruke en API, må du installere forespørsler Python-biblioteket. Forespørsler er et HTTP-bibliotek i Python som lar deg sende HTTP-forespørsler i Python.

Installer forespørsler

I din terminal, skriv inn:

pip installasjonsforespørsler

For å sjekke om installasjonen har vært vellykket, utsted følgende kommando i Python-tolken eller terminalen:

importer forespørsler

Hvis det ikke er noen feil, har installasjonen vært vellykket.

Slik får du informasjon fra en web-API

GET-metoden brukes til å få informasjon fra en webserver. La oss se hvordan du lager en GET-forespørsel for å få GitHubs offentlige tidslinje.

Vi bruker variabelen req for å lagre svaret fra vår forespørsel.

importer forespørsler req = requests.get ('https://github.com/timeline.json')

Nå som vi har gjort en forespørsel til GitHub-tidslinjen, la oss få kodingen og innholdet i svaret.

importere forespørsler req = requests.get ('https://github.com/timeline.json') req.text du '"message": "Hei, vei utenfra. Hvis du leser dette, har du sikkert ikke \ U2019t se vårt blogginnlegg et par år tilbake, og annonsere at denne API-en skulle gå bort: http://git.io/17AROg Frykt ikke, du bør kunne få det du trenger fra den skinnende nye hendelses-API-en i stedet. "," documentation_url ":" https://developer.github.com/v3/activity/events/#list-public-events "
import forespørsler req = requests.get ('https://github.com/timeline.json') req.encoding 'utf-8'

Forespørsler har et innebygd JSON-dekoder som du kan bruke til å få svaret på en forespørsel i JSON-format.

importforespørsler importere json req = requests.get ('https://github.com/timeline.json') req.json () u'documentation_url ': u'https: //developer.github.com/v3/aktivitet / hendelser / # liste-offentlige-hendelser ', du'message': u'Hello there, wayfaring fremmed. Hvis du leser dette så har du sannsynligvis ikke sett vårt blogginnlegg et par år tilbake, og annonserte at denne API-en skulle gå vekk: http://git.io/17AROg Frykt ikke, du bør kunne få det du trenger fra den skinnende nye hendelses-API-en i stedet. '

Hvordan opprette og oppdatere informasjon på web-API

POST- og PUT-metodene brukes både til å opprette og oppdatere data. Til tross for likhetene er det viktig å merke seg at bruk av en POST-forespørsel for å oppdatere data vil resultere i to oppføringer i datalageret hvis to identiske elementer er sendt inn.

Opprett data (POST-forespørsel):

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

Oppdater data (PUT-forespørsel):

r = requests.put ('http://127.0.0.1/api/v1/add_item', data = 'oppgave': 'Shopping på 2')

Arbeider med Twitter REST API

I denne delen skal du lære å få tak i Twitter API-legitimasjon, godkjenne til Twitter-API, og samhandle med Twitter API ved hjelp av Python. 

Du vil også kunne hente informasjon fra offentlige Twitter-kontoer, som tweets, tilhenger osv.

Godkjenning med Twitter

Vi må autentisere med Twitter API før vi kan samhandle med den. For å gjøre dette, følg følgende trinn:

  1. Gå til Twitter Apps-siden.
  2. Klikk på Opprett ny app (du må være logget inn på Twitter for å få tilgang til denne siden). Hvis du ikke har en Twitter-konto, opprett en.

3. Opprett et navn og en beskrivelse for appen din og en websitebeholder.

4. Finn Tast og tilgangstegn Tab og lag din tilgangstoken.

5. Du må ta oppmerksom på Tilgangstoken og Tilgangstoken er hemmelig siden du trenger dem for godkjenningsprosessen.

6. Du må også være oppmerksom på Forbrukernøkkel og Forbrukerhemmelig.

Det er noen biblioteker vi kan bruke for å få tilgang til Twitter API, men vi skal bruke python-twitter-biblioteket i denne opplæringen.

Installer python-twitter

For å installere python-twitter, bruk:

$ pip installere python-twitter 

Twitter API er eksponert via twitter.Api klasse, så la oss lage klassen ved å sende våre tokens og hemmelige nøkler:

import twitter api = twitter.Api (consumer_key = [forbrukernøkkel], consumer_secret = [forbrukerhemmelig], access_token_key = [access token], access_token_secret = [tilgangstoken hemmelig])

Erstatt legitimasjonene dine ovenfor og sørg for at de er vedlagt i sitater, dvs. consumer_key = "xxxxxxxxxx", ...)

Spørre Twitter

Det er mange metoder for interaksjon med Twitter API, inkludert:

>>> api.PostUpdates (status) >>> api.PostDirectMessage (bruker, tekst) >>> api.GetUser (bruker) >>> api.GetReplies () >>> api.GetUserTimeline (bruker) >>> api .GetHomeTimeline () >>> api.GetStatus (status_id) >>> api.DestroyStatus (status_id) >>> api.GetFriends (bruker) >>> api.GetFollowers ()

For å få data fra Twitter, skal vi lage en API-samtale ved hjelp av api objekt vi opprettet ovenfor.

Vi vil gjøre følgende:

  1. Lage en bruker variabel og sett den lik et gyldig Twitter-håndtak (brukernavn).
  2. Ring GetUserTimeline () metode på api objekt og passere i følgende argumenter.

  • et gyldig Twitter-håndtak
  • antall tweets du vil hente (telle)
  • et flagg for å utelukke retweets (dette gjøres ved hjelp av include_rts = false)

La oss få de siste tweets fra Envato Tuts + Code tidslinjen, unntatt retweets.

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 (skjermnavn = bruker, telle = 30, include_rts = False) for s i statusene: print s.text 

De GetUserTimeline () Metoden vil returnere en liste over de siste 30 tweets, så vi slår gjennom listen og skriver ut de viktigste informasjonene (innhold) fra hver tweet.

Her er 6 ting som gjør Garn den beste #JavaScript pakkehåndteringen rundt. https://t.co/N4vzIJmSJi Finn ut mer om bardiagrammer med del 3 i denne serien om å lage interaktive diagrammer ved hjelp av Plotly.js. https://t.co/lyKMxSsicJ Se hva som er nytt med Git-støtte i Xcode 9. https://t.co/7gGu0PV1rV Slik lager du digitale signaturer med Swift. https://t.co/kCYYjShJkW I dette raske tipset, oppdag hvordan du bruker Atom som et Git GUI. https://t.co/8rfQyo42xM Ta en titt på disse 12 nyttige WordPress-pluginene for sidelayout. https://t.co/T57QUjEpu5 Lær mer om linjediagrammer i del 2 av serien vår på å lage interaktive diagrammer ved hjelp av Plotly.js. https://t.co/nx51wOzSkF Grab noen flotte freebies med vårt spesielle tiende bursdagsbud, https://t.co/AcIGTiC2re I dette siste i serien vår om koding av en sanntids app med NativeScript: Push notifications. https://t.co/qESFVGVF4L Kom i gang med end-to-end testing i Angular using Protractor. https://t.co/TWhQZe7ihE Lær hvordan du bygger en gjøremåls-API med Node, Express og MongoDB. https://t.co/R4DvRYiM90 Hva er Android-aktiviteten? https://t.co/VUHsucaC1X Lær alt om objektorientert programmering med JavaScript. https://t.co/bI7ypANOx3 Ha det gøy med funksjoner i dette siste i vår serie på Kotlin. https://t.co/r2f2TzA5lM Slik gjør du JavaScript-koden robust med Flow. https://t.co/rcdjybKL8L Bygg din egen to-do API med Node and Restify. https://t.co/gQeTSZ6C5k Slik setter du dine kontroller på en diett med MVVM. https://t.co/oJqNungt1O Lær hvordan du sender inn din nye iOS-app til App Store. https://t.co/JQwsKovcaI Denne guiden er det perfekte stedet å bygge ferdighetene dine og begynne å skrive plugins i Go. https://t.co/68X5lLSNHp Ta en titt på hvordan du kan teste komponenter i vinkel med jasmin. https://t.co/V5OTNZgDkR Lær å bygge ditt første #WordPress-plugin i dette fantastiske nye kurset. https://t.co/695C6U6D7V I dette siste i vår Android-arkitekturkomponenter-serie: LiveData. https://t.co/gleDFbqeAi Ta et dypt dykk inn i Go-typen systemet. https://t.co/AUM7ZyanRO Ta en titt på serverløs logikk med rikefunksjoner. https://t.co/aYhfeMgAZc Del 4 av React crash kurs for nybegynnere er ute! https://t.co/aG5NEa6yG9 Lær om sosial login og Firebase i dette nye tillegget til serien. https://t.co/oL5z0krQD3 Opprette en blogging app ved hjelp av React del 6 er ute! Tags https://t.co/OzUaPQEX8E Hva er GenServer og hvorfor skal du bryr deg? https://t.co/EmQeTBggUK Sjekk ut del 3 i React crash kurs for nybegynnere serien. https://t.co/dflLCUqncO Lær om pakker og grunnleggende funksjoner i tillegg til vår Kotlin fra scratch-serien. https://t.co/JAo2ckSgZS 

For å hente etterfølgere bruker vi GetFriends () metode.

import twitter api = twitter.Api (consumer_key = "ftFL8G4yzQXUVzbUCdxGwKSjJ", consumer_secret = "KxGwBe6GlgSYyC7PioIVuZ5tFAsZs7q1rseEYCOnTDIjulT0mZ", access_token_key = "314 746 354-Ucq36TRDnfGAxpOVtnK1qZxMfRKzFHFhyRqzNpTx", access_token_secret = "7wZ1qHS0qycy0aNjoMDpKhcfzuLm6uAbhB2LilxZzST8w") user = "@TutsPlusCode" venner = api.GetFriends (SCREEN_NAME = bruker) for venn i venner: skriv ut venn.navn

Produksjon

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

Konklusjon

Twitters API kan i stor grad brukes i dataanalyse. Den kan også brukes i komplekse store dataproblemer og autentiserende programmer. Les mer om Twitter API på Twitter utvikler siden.

.