Contributed by Denis Nguyen. He is currently in the NYC Data Science Academy 12 week full-time Data Science Bootcamp program taking place between April 11th to July 1st, 2016. This post is based on his third class project - Web Scraping (due on the 6th week of the program).
Twitter is an online social networking service in which users send short messages called "tweets." Tweets may include media such as pictures, videos, links, making it a very informative source of information. Some people use Twitter as a media outlet and stay up-to-date with current events just by reading Twitter. Others use Twitter to voice their thoughts about events and topics and this has made Twitter a rich source of information for data analytics. By analyzing tweets, one can understand what people may feel about certain events or companies and this becomes valuable actionable information for marketing companies. With the presidential election approaching, I wanted to see what our presidential candidate Donald Trump tweeted the most and how his tweets have changed throughout the campaign. People have said how his use of Twitter has been an integral part of his campaign and analyzing them would give us more information.
Donald Trump announced his presidential campaign on June 16, 2015 so tweets from @realDonaldTrump were retrieved from June 1, 2015 to May 20, 2016. Tweets contained text, time of post, hashtags, replies, locations, and number of likes and retweets. The information was organized in the table shown below.
Strategy for Scraping
Twitter provides APIs to help retrieve tweets but because this project was putting what I learned about web scraping to the test, I decided to stick to Python and write my own script to get the data. Upon research, I found out that APIs placed a limit on the amount of information attained but my script does not have this limit. Unfortunately, simply loading the url with Python and retrieving information did not work and would only retrieve 20 tweets. This occurred because Twitter only loads 20 tweets at a time and would load the next 20 when the bottom of the web page was reached. Selenium was used to overcome this obstacle. Selenium opens up the web page in a browser and scrolls down until it reaches the last tweet. Once this is done, it retrieves information and puts it in a table.
Selenium seems to have a limit of 10,000 tweets as the Selenium browser does not look like it can handle all the media in the tweets.
The following code can be adapted to any page.
Likes and Retweets
Upon analyzing the number of likes and retweets, Trump's tweets received, we see a large range in numbers. Likes ranged from 14 to 110,000 while retweets ranged from 2 to 85,000. This large range can be seen in the progression of his tweets. Before he announced his candidacy, his tweets only received a couple hundred likes and retweets but is now averaging a couple thousand likes and retweets. His number of posts has also increased over time so whatever Trump is doing must be working in getting him more attention and media coverage.
Although not all of Trump's tweets have location, it is interesting to see where most of his tweets are coming from. It would make sense that most of his tweets are in the northeast region but other frequent tweet locations occurred in places where he stopped at during his campaign. Some places like United States and Trump Tower are not very specific so it is also questionable how Twitter allows locations to be picked.
Hashstags most frequently used in Trump's tweets are #Trump2016 and #MakeAmericaGreatAgain, which would make sense since those 2 hashtags are his slogan. His top hashtags are political terms/politically related with the exception of #SNL, which is Saturday Night Live. Perhaps Trump has been featured on that show a couple times and therefore he has mentioned them in his tweets.
One way Trump must be using his Twitter to help him stay on people's minds is by tweeting at media. Most of his replies are to media such as @FoxNews and @CNN, with the exception of @JebBush and @Macys. It would make sense that his political opponent is mentioned but we may look further into Trump's association with Macy's.
The number of words that Trump uses in his tweets are interesting to analyze. I would think that words pertaining to certain controversial topics would be mentioned but the top words are not negative as people have been saying. After removing "stop words" which are words commonly used in English such as "the" and "is," we have a list of his most frequently used words. Even after removing hashtags and replies in the word count, we see that words from his slogan "Make America Great Again" are in the top list. His name is also used a lot but that may be from quoting articles and tweets about him.
Trump has used Twitter as a way to stay on people's minds and in media's spotlight. The number of tweets made over his campaign has increased and the number of likes and retweets has increased. We do not know if this means that he will win the election but it does show us how much of an impact social media platforms such as Twitter can have on a presidential election.
The following are a couple conclusions after analyzing his tweets:
- In about a year, Trump has grown the number of likes and retweets from under 50 to a couple thousand per tweet
- Most of Trump's tweets with location are from Manhattan and New Jersey
- Trump's 20 most frequent hashtags are political terms, with the exception of #SNL
- #Trump2016 and #MakeAmericaGreatAgain are the top two
- Trump tweets at media the most, with the exception of Jeb Bush who is his 4th favorite Twitter buddy
- 'Trump" appears the most in the tweets, coming from articles and replies
Future steps are to analyze #AskTrump, which was the questionnaire that Trump announced on Twitter. The number of tweets were over 10,000 and Selenium had problems loading all of them so we will want to collect smaller number of tweets at a time and the combine the information. Doing sentiment analysis and seeing how feelings about Trump have changed over time would also give us an idea of how his campaign is going and may help us predict whether he may win the election.