Raschiare i dati di Twitter con Python [con 2 API]
Pubblicato: 2020-11-30Sommario
introduzione
Le piattaforme di social media come Twitter sono uno dei grandi archivi per la raccolta di set di dati. Lavorare su un nuovo progetto di scienza dei dati richiede una discreta quantità di dati, raccogliere il set di dati non è un compito facile.
E Twitter fornisce un genere diversificato di dati perché è una raccolta di tweet di persone con mentalità e sentimenti diversi. Questo tipo di set di dati senza pregiudizi è un prerequisito indispensabile per il training di un nuovo modello di machine learning.
Iniziamo!
Esamineremo 2 API per lo scraping dei dati di Twitter.
- Tweep
- Twint
Tweep
Prima di iniziare a esaminare il codice Python per lo scraping dei dati utilizzando l'API Tweepy, c'è un punto in cui devi sapere che abbiamo bisogno delle credenziali di un account sviluppatore Twitter ed è un gioco da ragazzi se le hai già.
Per le persone che non hanno un account sviluppatore, puoi richiederlo qui . E prima di richiedere un account sviluppatore è necessario disporre di un account Twitter. La richiesta di un account sviluppatore è un processo semplice e l'applicazione pone alcune domande di base come il motivo dell'applicazione, ecc. E l'approvazione dell'account sviluppatore richiede generalmente 2-3 giorni.
Dopo aver ricevuto l'approvazione per l'account sviluppatore, prendi nota delle chiavi API consumer, del token di accesso e del token di accesso segreto dalla sezione "chiavi e token".
Inoltre, c'è un punto da notare che ci sono pochi vincoli per tweepy come puoi solo raschiare i tweet che non sono più vecchi di una settimana. E un limite nello scraping, fino a 18000 tweet in un lasso di tempo di 15 minuti.
Ottimo, ora che abbiamo chiavi e token dall'account sviluppatore, autorizziamoli.
| consumer_key = " la tua chiave consumatore " consumer_secret = " il tuo segreto del consumatore " access_token = " il tuo token di accesso " access_token_secret = " il tuo token segreto " autorizzazione = tweepy.OAuthHandler(consumer_key, consumer_secret) authorization.set_access_token(access_token, access_token_secret) api = tweepy.API(autorizzazione,wait_on_rate_limit = True ) |
Ora che abbiamo autorizzato con le nostre credenziali, analizziamo i tweet di un determinato account. Per ora, esaminiamo i tweet del signor Sundar Pichai.
| nome utente = ' sundarpichai ' contare = 100 prova : #Linea 1 tweets_obj = tweepy.Cursor(api.user_timeline,id = username).items(count) #linea 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] per tweet in tweets_obj] #linea3 tweets_df = pd.DataFrame(tweets_list) tranne BaseException come e: print ( ' qualcosa è andato storto, ' , str (e)) |
Nello snippet sopra, line1 crea un oggetto iterabile con tutti i tweet e viene assegnato a una variabile "tweets_obj". Una volta terminata la creazione di un oggetto iterabile, eseguiamo un'iterazione su di esso ed estraiamo tutti i dati.
Stiamo estraendo solo alcuni attributi come "created_at", "id", "text" e aggiungendoli a ciascuna voce in un array 2D. Dove ogni voce ha tutti i dati di ogni tweet che abbiamo raschiato. Ora che abbiamo un array 2D con attributi come ogni voce, possiamo convertirlo in un frame di dati usando la sintassi "pd.DataFrame()".
Il motivo per convertire un array in un frame di dati è una maggiore flessibilità, disponibilità di metodi predefiniti e un facile accesso che lo distingue da tutte le strutture di dati per i progetti di scienza dei dati.
Allo stesso modo, esaminiamo un codice per lo scraping dei dati con una particolare query di testo.
| text_query = ' vocale per locale ' contare = 100 prova : #Linea 1 tweets_obj = tweepy.Cursor(api.search,q = text_query).items(count) #linea 2 tweets_list = [[tweet.created_at, tweet.id, tweet.text] per tweet in tweets_obj] #linea3 df = pd.DataFrame(tweets_list) tranne BaseException come e: print ( ' qualcosa è andato storto, ' , str (e)) |
Nello snippet sopra, tutto è uguale allo snippet precedente. Infine, abbiamo creato un data frame con tutti i tweet contenenti la query testuale “vocal for local”.
Se stai cercando uno scraping di dati più specifico o personalizzato, come includere più attributi come il conteggio dei retweet, il conteggio dei preferiti, ecc. Possiamo personalizzare la nostra sintassi ed estrarre altri attributi forniti da tweepy. Per ulteriori letture sugli altri attributi offerti da tweepy, dai un'occhiata alla documentazione .
Twint
L'API Twint non richiede credenziali dell'account sviluppatore, puoi scansionare facilmente i tweet senza chiavi di autorizzazione. Inoltre, twint non ha restrizioni come il numero di tweet, i tempi, i limiti di scraping, ecc. Twint ti offre uno scraping dei dati senza interruzioni e un'API facile da usare.
Possiamo stampare l'elenco dei follower di una persona utilizzando il suo nome utente dall'API di twint.
| t_obj = twint.Config() t_obj.Username = “ sundarpichai “ twint.run.Followers(t_obj) |
Nello snippet sopra twint.Config() configura l'API twint e fa iniziare le cose. E dopo aver assegnato un oggetto possiamo usare quel riferimento per il nostro lavoro, “t_obj.Username” assegna il nome utente che abbiamo inserito. E twint.run.Followers esegue una ricerca di tutti i follower di quel nome utente.

Possiamo anche archiviare i dati raschiati in un frame di dati simile all'API tweepy.
| t_obj.Limit = 100 t_obj.Username = “ sundarpichai “ t_obj.Pandas = Vero twint.run.Followers(t_obj) result_df = twint.storage.panda.User_df |
Tutto nello snippet è quasi lo stesso del frammento precedente, solo con una riga extra di sintassi "twint.storage.panda.User_df" che converte i dati raschiati in un frame di dati. Il frame di dati del risultato è costituito da un elenco di follower del nome utente fornito.
Ora che abbiamo visto lo scraping dei dati dei follower di un particolare nome utente, esaminiamo il codice per lo scraping dei tweet di un particolare account.
| t_obj.Search = “ da:@sundarpichai “ t_obj.Store_object = Vero t_obj.Limit = 20 twint.run.Search(t_obj) tweets = t.search_tweet_list stampa (tweet) |
Nello snippet sopra, stiamo creando l'oggetto configurato per cercare i tweet di una persona in particolare, possiamo anche impostare il limite dei tweet durante lo scraping usando la sintassi "t_obj.Limit". E dopo aver eseguito la ricerca, crea un elenco di tutti i tweet e possiamo assegnarlo a una variabile locale secondo le nostre esigenze.
Dopo aver visto gli snippet delle informazioni di scraping di un determinato account, potresti avere una rapida domanda: come eseguire lo scraping dei tweet contenenti una determinata parola chiave?. Non è un problema, Twint ha una soluzione per questo.
| t_obj.Search = “ scienza dei dati ” t_obj.Store_object = Vero t_obj.Limit = 100 twint.run.Search(t_obj) tweets = t.search_tweet_list stampa (tweet) |
Lo snippet sopra è lo stesso dello snippet per lo scraping dei tweet da un account particolare, con una singola differenza nella riga1. Possiamo anche convertirlo in un frame di dati secondo la nostra convenienza.
Per ulteriori letture sull'API di twint, dai un'occhiata al loro repository e alla documentazione .
Conclusione
Abbiamo compreso l'importanza di raschiare i dati. Abbiamo esaminato due API e le loro funzionalità per lo scraping dei dati di Twitter. Visti alcuni metodi per convertire i dati raschiati nel nostro formato di file richiesto. Ora che conosci queste API, inizia a raccogliere i dati per i tuoi progetti di scienza dei dati!
Noi di upGrad siamo felici di aiutarti e vorremmo anche farti conoscere le opportunità che puoi avere imparando Python. Python è stato ampiamente utilizzato per Machine Learning e Data Science, due delle tecnologie più popolari ed emergenti. Imparare Python e anche conoscere queste abilità ti farà eccellere nel tuo campo e otterrai migliori opportunità di carriera.
Abbiamo molti corsi sviluppati insieme a esperti del settore e istituti accademici di prim'ordine per fornirti tutte le competenze necessarie per eccellere in questo campo. Alcuni dei corsi che possono aiutarti a sfruttare le tue conoscenze in Python e aumentare le tue prospettive di carriera:
Scienza dei dati:
Dai un'occhiata ai programmi di scienza dei dati online di upGrad sviluppati con IIIT-B, è un corso di scienza dei dati a tutti gli effetti per entrare in questo campo e lasciare un segno nei settori con le tue conoscenze.
Master in Data Science : sviluppato in collaborazione con la Liverpool John Moores University e IIIT-B, ha conseguito un master in Data Science presso una delle migliori università del mondo.
Apprendimento automatico:
Certificazione avanzata in Machine Learning e AI : IIT madras, una delle migliori istituzioni educative dell'India, ha collaborato con upGrad per realizzare un corso avanzato sull'apprendimento automatico affinché le persone abbiano una conoscenza completa dell'apprendimento automatico con questo corso.
Master of Science in Machine Learning e AI : la Liverpool John Moores University e IIIT-B hanno collaborato con upGrad per fornire master completi in scienze alle persone per apprendere la tecnologia in dettaglio e ottenere una laurea formale in questa tecnologia per preparare un successo percorso in questo campo.
Diploma PG in Machine Learning e AI : IIIT-B e upGrad si sono uniti per aiutare le persone ad avere l'opportunità di fare un corso di 12 mesi su Machine Learning e AI e avere la possibilità di entrare in questa tecnologia con questo corso.
Che cos'è lo scraping dei dati?
Lo scraping dei dati si riferisce a un processo in cui un software per computer estrae i dati da un output creato da un altro programma. Lo scraping Web è un tipo di scraping di dati utilizzato per raccogliere dati o informazioni da diversi siti Web. Nello scraping web, un'applicazione viene utilizzata per raccogliere informazioni preziose da un sito web. Il programma web scraping può accedere rapidamente e facilmente al WWW (World Wide Web) utilizzando l'HTML (Hypertext Transfer Protocol) o un browser web.
Perché è necessario lo scraping dei dati su Twitter?
Lo scraping dei dati sui social media aiuta a tracciare, valutare e esaminare i dati disponibili sulle piattaforme. Twitter è la piattaforma più popolare e lo scraping dei dati di Twitter aiuta gli utenti ad analizzare il comportamento degli utenti, la strategia della concorrenza, l'analisi del sentiment e rimanere aggiornati su ciò che sta accadendo sul canale social più popolare del mondo dai tweet di persone, colleghi e aziende che importa a te. Il servizio di scraping dei dati di Twitter gestisce le tue esigenze end-to-end nel minor tempo possibile e ti fornisce i dati necessari. Twitter, ad esempio, consente ai crawler di raccogliere dati tramite la sua API solo per limitare la quantità di informazioni sui propri utenti e sulle loro attività.
Cosa sono le API?
Le interfacce di programmazione delle applicazioni sono minuscoli frammenti di codice che consentono a dispositivi digitali, programmi software e server di dati di comunicare tra loro e sono la spina dorsale vitale di molti dei servizi su cui attualmente facciamo affidamento. Un'API connette computer o software tra loro, al contrario di un'interfaccia utente, che collega un computer a un essere umano. Non è progettato per l'utilizzo diretto da parte di nessuno (l'utente finale) diverso da un programmatore di computer che lo incorpora nel software. Un'API è spesso composta da molti componenti che fungono da strumenti o servizi per il programmatore.
