Scraping datele Twitter cu Python [cu 2 API-uri]
Publicat: 2020-11-30Cuprins
Introducere
Platformele de social media precum Twitter sunt unul dintre cele mai bune depozite pentru colectarea seturi de date. Lucrul la un nou proiect de știință a datelor necesită o cantitate suficientă de date, adunarea setului de date nu este o sarcină ușoară.
Și Twitter oferă un gen diversificat de date, deoarece este o colecție de tweet-uri de la oameni cu mentalități diferite și sentimente diferite. Acest tip de set de date fără părtinire este o condiție prealabilă foarte necesară pentru antrenarea unui nou model de învățare automată.
Să începem!
Vom parcurge 2 API-uri pentru eliminarea datelor Twitter.
- Tweepy
- Twint
Tweepy
Înainte de a începe să parcurgem codul python pentru răzuirea datelor folosind API-ul Tweepy, trebuie să știți că avem nevoie de acreditările unui cont de dezvoltator Twitter și este o simplă simplă dacă le aveți deja.
Pentru persoanele care nu au un cont de dezvoltator, puteți aplica pentru asta aici . Și înainte de a aplica pentru un cont de dezvoltator, trebuie să aveți un cont Twitter. Aplicarea pentru un cont de dezvoltator este un proces ușor, iar aplicația pune câteva întrebări de bază, cum ar fi motivul cererii, etc. Iar aprobarea contului de dezvoltator durează în general 2-3 zile.
După ce primiți aprobarea pentru contul de dezvoltator, notați cheile dvs. API de consum, simbolul de acces și secretul jetonului de acces din secțiunea „chei și simboluri”.
De asemenea, trebuie remarcat că există puține constrângeri pentru tweepy, cum ar fi doar să răzuiești tweet-uri care nu sunt mai vechi de o săptămână. Și o limită în scraping, până la 18000 de tweet-uri într-un interval de timp de 15 minute.
Grozav, acum că avem chei și jetoane din contul de dezvoltator, să le autorizăm.
consumer_key = „ cheia dvs. de consumator ” consumer_secret = „ secretul tău de consum ” access_token = „ indicativul tău de acces ” access_token_secret = „ secretul simbolului tău ” autorizare = tweepy.OAuthHandler(consumer_key, consumer_secret) authorization.set_access_token(access_token, access_token_secret) api = tweepy.API(autorizare,wait_on_rate_limit = True ) |
Acum că ne-am autorizat cu acreditările noastre, să răzuim tweet-urile unui anumit cont. Deocamdată, să răzuim tweet-urile domnului Sundar Pichai.
nume de utilizator = ' sundarpichai ' număr = 100 incearca : #linia 1 tweets_obj = tweepy.Cursor(api.user_timeline,id = username).items(count) #randul 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] pentru tweet în tweets_obj] #linia 3 tweets_df = pd.DataFrame(listă_tweets) cu excepția BaseException ca e: print ( ' ceva a mers prost, ' , str (e)) |
În fragmentul de mai sus, line1 creează un obiect iterabil cu toate tweet-urile și este atribuit unei variabile „tweets_obj”. Odată ce am terminat cu crearea unui obiect iterabil, să repetăm peste el și să extragem toate datele.
Extragem doar câteva atribute precum „created_at”, „id”, „text” și le adăugăm la fiecare intrare într-o matrice 2D. Unde fiecare intrare are toate datele fiecărui tweet pe care l-am răzuit. Acum că avem o matrice 2D cu atribute ca fiecare intrare, o putem converti într-un cadru de date utilizând sintaxa „pd.DataFrame()”.
Motivul pentru conversia unei matrice într-un cadru de date este mai multă flexibilitate, disponibilitatea metodelor predefinite și accesul ușor îl face să iasă în evidență de toate structurile de date pentru proiectele de știință a datelor.
În mod similar, să parcurgem un cod pentru răzuirea datelor care are o anumită interogare de text.
text_query = ' vocal pentru local ' număr = 100 incearca : #linia 1 tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count) #randul 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] pentru tweet în tweets_obj] #linia 3 df = pd.DataFrame(listă_tweets) cu excepția BaseException ca e: print ( ' ceva a mers prost, ' , str (e)) |
În fragmentul de mai sus, totul este la fel ca fragmentul anterior. În cele din urmă, am creat un cadru de date cu toate tweet-urile care conțin interogarea text „vocal pentru local”.
Dacă sunteți în căutarea unei date mai specifice sau personalizate, cum ar fi includerea mai multor atribute, cum ar fi numărul de retweeturi, numărul de favorite etc. Ne putem personaliza sintaxa și extrage alte atribute furnizate de tweepy. Pentru a citi mai multe despre alte atribute oferite de tweepy, aruncați o privire la documentație .
Twint
API-ul Twint nu necesită acreditări de cont de dezvoltator, puteți răzui tweet-uri cu ușurință fără chei de autorizare. De asemenea, twint nu are restricții precum numărul de tweet-uri, intervale de timp, limite de scraping etc. Twint vă oferă o scraping fără întreruperi a datelor și un API ușor de utilizat.
Putem tipări lista de urmăritori ai unei persoane folosind numele de utilizator din API-ul twint.
t_obj = twint.Config() t_obj.Username = „ sundarpichai ” twint.run.Followers(t_obj) |
În fragmentul de mai sus, twint.Config() configurează API-ul twint și face ca lucrurile să înceapă. Și după ce atribuim un obiect putem folosi acea referință pentru munca noastră, „t_obj.Username” atribuie numele de utilizator pe care l-am introdus. Și twint.run.Followers efectuează o căutare a tuturor adepților acelui nume de utilizator.

De asemenea, putem stoca datele răzuite într-un cadru de date similar cu API-ul tweepy.
t_obj.Limita = 100 t_obj.Username = „ sundarpichai ” t_obj.Pandas = Adevărat twint.run.Followers(t_obj) result_df = twint.storage.panda.User_df |
Totul din fragment este aproape la fel ca și fragmentul anterior, doar cu o linie suplimentară de sintaxă „twint.storage.panda.User_df” care convertește datele răzuite într-un cadru de date. Cadrul de date rezultat constă dintr-o listă de adepți ai numelui de utilizator dat.
Acum că am văzut răzbunarea datelor adepților unui anumit nume de utilizator, haideți să parcurgem codul pentru eliminarea tweet-urilor unui anumit cont.
t_obj.Search = „ de la:@sundarpichai „ t_obj.Store_object = Adevărat t_obj.Limita = 20 twint.run.Search(t_obj) tweets = t.search_tweet_list imprimare (tweeturi) |
În fragmentul de mai sus, facem obiectul configurat să caute tweet-uri ale unei anumite persoane, putem, de asemenea, seta limita de tweet-uri în timp ce scraping folosind sintaxa „t_obj.Limit”. Și după rularea căutării, creează o listă cu toate tweet-urile și o putem atribui unei variabile locale în funcție de nevoile noastre.
După ce ați văzut fragmentele de informații despre scraping ale unui anumit cont, este posibil să aveți o întrebare rapidă care este cum să răzuiți tweet-urile care conțin un anumit cuvânt cheie?. Nici o problemă twin nu are o soluție pentru asta.
t_obj.Search = „ știința datelor ” t_obj.Store_object = Adevărat t_obj.Limita = 100 twint.run.Search(t_obj) tweets = t.search_tweet_list imprimare (tweeturi) |
Fragmentul de mai sus este același cu fragmentul pentru răzuirea tweet-urilor dintr-un anumit cont, cu o singură diferență în rândul 1. De asemenea, îl putem converti într-un cadru de date în funcție de confortul nostru.
Pentru a citi mai multe despre API-ul twint, aruncați o privire la depozitul și documentația acestora .
Concluzie
Am înțeles importanța răzuirii datelor. Am trecut prin două API-uri și funcțiile acestora pentru a răzui datele Twitter. Am văzut câteva metode de conversie a datelor răzuite în formatul nostru de fișier necesar. Acum că sunteți la curent cu aceste API-uri, începeți să colectați date pentru proiectele dvs. de știință a datelor!
Noi, cei de la upGrad , suntem bucuroși să vă ajutăm și am dori, de asemenea, să vă anunțăm despre oportunitățile pe care le puteți avea învățând python. Python a fost utilizat pe scară largă pentru Machine Learning și Data Science, două dintre cele mai populare și emergente tehnologii. Învățarea Python și, de asemenea, cunoașterea acestor abilități te vor face să excelezi în domeniul tău și să obții oportunități de carieră mai bune.
Avem o mulțime de cursuri dezvoltate împreună cu experți din industrie și institute academice de top pentru a vă oferi toate abilitățile necesare pentru a excela în acest domeniu. Unele dintre cursurile care vă pot ajuta să vă folosiți cunoștințele în python și să vă creșteți perspectivele de carieră:
Știința datelor:
Consultați programele online de știință a datelor de la upGrad dezvoltate cu IIIT-B, este un curs de știință a datelor cu drepturi depline pentru a intra în acest domeniu și a face amprenta în industrii cu cunoștințele dvs.
Master în Știința Datelor : Dezvoltat în coordonare cu Universitatea Liverpool John Moores și IIIT-B, a obținut o diplomă de master în Știința datelor de la una dintre cele mai bune universități din lume.
Învățare automată:
Certificare avansată în învățarea automată și IA : IIT madras, una dintre cele mai bune instituții de învățământ din India, s-a asociat cu upGrad pentru a realiza un curs avansat de învățare automată pentru ca oamenii să aibă cunoștințe complete despre învățarea automată cu acest curs.
Masterat în învățare automată și IA : Universitatea Liverpool John Moores și IIIT-B au colaborat cu upGrad pentru a oferi diplome complete de master în știință pentru ca indivizii să învețe tehnologia în detaliu și să obțină o diplomă oficială în această tehnologie pentru a crea un succes. cale în acest domeniu.
Diploma PG în Machine Learning și AI : IIIT-B și upGrad s-au unit pentru a ajuta persoanele să aibă ocazia de a face un curs de 12 luni despre Machine Learning și AI și să aibă șansa de a intra în această tehnologie cu acest curs.
Ce este răzuirea datelor?
Data scraping se referă la un proces în care un software de calculator extrage date dintr-o ieșire creată de un alt program. Web scraping este un tip de data scraping care este utilizat pentru a aduna date sau informații de pe diferite site-uri web. În web scraping, o aplicație este utilizată pentru a colecta informații valoroase de pe un site web. Programul web scraping poate accesa rapid și ușor WWW (World Wide Web) folosind HTML (Hypertext Transfer Protocol) sau un browser web.
De ce este necesară eliminarea datelor pe Twitter?
Scrapingul datelor de pe rețelele sociale ajută la urmărirea, evaluarea și examinarea datelor disponibile pe platforme. Twitter este cea mai populară platformă, iar analiza datelor Twitter ajută utilizatorii să analizeze comportamentul utilizatorilor, strategia concurenței, analiza sentimentelor și să rămână la curent cu ceea ce se întâmplă pe cel mai popular canal social din lume din tweet-urile oamenilor, colegilor și companiilor care contează pentru tine. Serviciul de scraping de date Twitter se ocupă de nevoile dvs. end-to-end în cel mai mic timp și vă oferă datele necesare. Twitter, de exemplu, permite doar crawler-urilor să colecteze date prin intermediul API-ului său pentru a restricționa cantitatea de informații despre utilizatorii și activitățile acestora.
Ce sunt API-urile?
Interfețele de programare a aplicațiilor sunt fragmente minuscule de cod care permit dispozitivelor digitale, programelor software și serverelor de date să comunice între ele și sunt coloana vertebrală vitală a multor dintre serviciile pe care ne bazăm în prezent. Un API conectează computere sau bucăți de software între ele, spre deosebire de o interfață cu utilizatorul, care conectează un computer la un om. Nu este conceput pentru utilizare directă de către nimeni (utilizatorul final), altul decât un programator de computer care îl încorporează în software. Un API este adesea compus din multe componente care servesc ca instrumente sau servicii pentru programator.