Zakaj rudariti Twitter?
Twitter je idealen kraj za pridobivanje podatkov. Nekaj razlogov, zakaj je to res:
- Vsi tviti na Twitterju so javni
- Novi podatki prihajajo sproti, kar pomeni, da vam nikoli ne zmanjka svežih podatkov za testiranje
- Twitter ima zanimiv API za razvijalce, od koder potegnejo podatke, pa tudi prijazni so
- API-ji, ki jih ponuja Twitter, ponujajo enostavne načine za objavljanje tvitov, povezanih z določenim uporabnikom ali določeno besedo / hashtagom ali tvitom na določeni lokaciji
Kako začeti
Zdaj, ko smo utemeljili, zakaj uporabljamo to platformo, začnimo zbirati naša orodja. Za to lekcijo bomo uporabili Javo 8, vendar lahko uporabite zgoraj navedene različice (čeprav bodo za njihovo uporabo morda potrebni nekateri popravki, ne tviti).
Za povezavo s Twitter-jevim API-jem bomo uporabljali knjižnico Java, imenovano Twitter4J.
Pridobivanje ključa API za Twitter
Pridobivanje ključa API-ja Twitterja je potrebno za dostop do njegovih podatkov, saj Twitter tako spremlja podatke in šteje zahteve, ki jih naša aplikacija pošlje Twitterju.
Ustvarimo aplikacijo Twitter in dobimo pravilne tipke za naprej.
- Ustvari aplikacijo tukaj
V zgornji obliki ustvarite aplikacijo z edinstvenim imenom, imenom spletnega mesta (uporabite spletno mesto z nadomestnimi znaki, če ga še nimate) in opisom projekta. Sprejmite določila in pogoje (če jih sprejmete) in nadaljujte na naslednjo stran.
Ko je projekt ustvarjen, se prikaže stran z naslednjo glavo:
- V spodnjih informacijah kliknite zavihek »Ključi in žetoni za dostop«, da dobite naslednje informacije:
- Pomaknite se navzdol in kliknite »Ustvari žetone za dostop«, da dobite spodnje informacije:
Te vrednosti bomo potrebovali pozneje, zato je bolje, da ta zavihek ostane odprt.
Uvod v Twitter4J
Twitter4J je neuradno Java knjižnica za Twitter API. S Twitter4J lahko enostavno vključimo našo aplikacijo Java s storitvijo Twitter.
Odvisnost Mavena
Za začetek bomo našemu projektu Java dodali ustrezno Maven Dependency.
Najdite najnovejšo različico odvisnosti maven tukaj.
Preverjanje pristnosti
Zdaj smo dodali zahtevano odvisnost od Mavena. Čas je, da začnemo govoriti z API-jem in Twitterjem.
Za začetek pogovora moramo preveriti pristnost naših klicev na Twitter, tako da bo vedel, da do podatkov dostopa samo znani uporabnik. Za to nastavimo svoje ključe, ki smo jih dobili prej.
statični končni niz CONSUMER_KEY = "vi-ključ";statični končni niz CONSUMER_SECRET = "skrivnost";
statični končni niz ACCESS_TOKEN = "žeton";
statični končni niz ACCESS_TOKEN_SECRET = "žeton-skrivnost";
javni statični Twitter getTwitterInstance ()
ConfigurationBuilder cb = novo ConfigurationBuilder ();
cb.setDebugEnabled (true) bashbash
.setOAuthConsumerKey (CONSUMER_KEY)
.setOAuthConsumerSecret (CONSUMER_SECRET)
.setOAuthAccessToken (ACCESS_TOKEN)
.setOAuthAccessTokenSecret (ACCESS_TOKEN_SECRET);
TwitterFactory tf = nov TwitterFactory (cb.build ());
vrnitev tf.getInstance ();
Primer: prikaz časovnice
V tem primeru bomo prikazali nekaj najnovejših tweetov s časovne osi preverjenega uporabnika. To bomo storili z uporabo primerka stanja Twitterjevega predmeta kot:
zasebna statična praznina showHomeTimeline (Twitter twitter)Seznam
poskusite
statusi = twitter.getHomeTimeline ();
Sistem.ven.println ("Prikaz domače časovnice.");
za (Status stanja: statusi)
Sistem.ven.println (status.getUser ().getName () + ":" + status.getText ());
URL niza = "https: // twitter.com / "+ status.getUser ().getScreenName () + "/ status /"
+ stanje.getId ();
Sistem.ven.println ("Nad tweet URL:" + url);
ulov (TwitterException e)
e.printStackTrace ();
Rezultat bi moral izgledati kot kup naključnih tweetov:
Če vas bo povezava do tvita pogosto pripeljala do samega tvita. Po povezavi iz prvega tvita bi dobili naslednji rezultat:
Poleg uporabniškega imena in besedila tweetov ima Twitter API še veliko informacij, ki jih lahko razberemo iz naslednjih razpoložljivih metod:
stanje.getSource ();stanje.getCreatedAt ();
stanje.getFavoriteCount ();
stanje.getGeoLocation ();
stanje.getLang ();
stanje.getPlace ();
stanje.getRetweetCount ();
stanje.getUser ().getBiggerProfileImageURL ();
stanje.getUser ().getEmail ();
stanje.getUser ().getFollowersCount ();
stanje.getUser ().getFriendsCount ();
To daje veliko informacij, povezanih s tvitom in uporabnikom, ki je objavil tweet. Sem ne sodijo vse metode, zato lahko raziščete vse razpoložljive metode.
Ti atributi so lahko zelo koristni, če je vaša aplikacija odvisna od več podatkov.
Primer: objavite tweet
V tem primeru bomo preprosto objavili nov tvit iz naše kode, saj je uporabnik že preveril pristnost. Tukaj položimo nekaj vzorčne kode:
private static void updateTweet (Twitter twitter, String tweet) vrže TwitterExceptionStatus stanja = twitter.updateStatus (tweet);
Sistem.ven.println ("Uspešno posodobljeno stanje na [" + status.getText () + "].");
Objava novega tvita je tako preprosta.
Primer: tviti določenega uporabnika
Zelo enostavno je dobiti še en uporabniški tvit, samo prosite uporabniško ime in API bo vrnil nekaj nedavnih tweetov za uporabnika.
Poskusimo potegniti najnovejših dvajset tweetov iz twitter računa @linuxhint:
Tu je vzorčna koda:
Seznamza (Status stanja: statusi)
Niz fmt = "@" + stanje.getUser ().getScreenName () + "-" + status.getText ();
Sistem.ven.println (fmt);
Ko zaženete ta program, bi morali videti Tweets for LinuxHint.
Priljubljene aplikacije te vrste podatkov lahko vključujejo:
- Izvajanje analize o določenih uporabnikih in o tem, kako vplivajo na svet
- Iskanje vplivnih vplivov na Twitterju in analiza njihovih sledilnih trendov in interakcij
- Spremljanje sprememb pri sledilcih uporabnika
Primer: Iskanje tweetov z uporabo ključne besede
Naredimo še zadnji primer: Pridobivanje najnovejših tweetov, ki vsebujejo ključno besedo. To je lahko zelo koristno, če želite spremljati posebej omenjene teme v svetu Twitterja ali celo videti, kako se vaše podjetje omenja.
Recimo, da želimo videti, kako Twitter omenja Linux:
// searchTerm = Linuxprivate static void searchTweets (Twitter twitter, String searchTerm) vrže TwitterException
Poizvedba poizvedba = nova poizvedba ("vir:" + searchTerm);
Rezultat QueryResult = twitter.iskanje (poizvedba);
za (Status stanja: rezultat.getTweets ())
Sistem.ven.println ("@" + status.getUser ().getScreenName () + ":" + status.getText ());
Tu je nekaj praktičnih načinov, kako lahko uporabite te informacije:
- Ustvarite prostorski graf o tem, kje je vaše podjetje najbolj omenjeno po vsem svetu
- Zaženite analizo sentimenta na tvitih, da preverite, ali je splošno mnenje vašega podjetja pozitivno ali negativno
- Ustvarite družabne grafikone najbolj priljubljenih uporabnikov, ki pišejo o vašem podjetju ali izdelku
Nekatere od teh tem lahko pokrivamo v prihodnjih člankih.
Twitter-jev API je izjemno uporaben v aplikacijah za rudarjenje podatkov in lahko nudi obsežen vpogled v javno mnenje.