Overview
Twitter’s API is REST-based and will return results as either XML or JSON, as well as both RSS and ATOM feed formats. Public timelines can be accessed by any client, but all other Twitter methods require authentication.
About this script
The program is well documented and should be straightforward. Open up a text editor, copy & paste the code below.
Save the file as: “tweet_search.py” and exit the editor.
- Bitly URL Shortener using Python
- Parse JSON objects in Python
- Python Script to Get the Geo Location of an IP Address
Getting Started
Let’s take a look at the program below that we call tweet_search.py
#!/usr/bin/python import json import sys import urllib2 import os usage = """ Usage: ./tweet_search.py 'keyword' e.g ./tweet_search.py pythonforbeginners Use "+" to replace whitespace" e.g ./tweet_search.py "python+for+beginners" """ # Check that the user puts in an argument, else print the usage variable, then quit. if len(sys.argv)!=2: print (usage) sys.exit(0) # The screen name in Twitter, is the screen name of the user for whom to return results for. # Set the screen name to the second argument screen = sys.argv[1] # Open the twitter search URL the result will be shown in json format url = urllib2.urlopen("http://search.twitter.com/search.json?q="+screen) #convert the data and load it into json data = json.load(url) #to print out how many tweets there are print len(data), "tweets" # Start parse the tweets from the result # Get only text for tweet in data["results"]: print tweet["text"] # Get the status and print out the contents for status in data['results']: print "(%s) %s" % (status["created_at"], status["text"])
How does it work?
Let’s break down the script to see what it does.
The script starts with importing the modules we are going to need
Line 3-6
import json import sys import urllib2 import os
We create a usage variable to explain how to use the script.
Line 8-14 usage = """ Usage: ./tweet_search.py 'keyword' e.g ./tweet_search.py pythonforbeginners Use "+" to replace whitespace" e.g ./tweet_search.py "python+for+beginners" """
On Line 16 we check that the user puts in an argument, else print the usage variable, then quit.
if len(sys.argv)!=2: print (usage) sys.exit(0)
Line 21-24 sets the Twitter screen name to the second argument.
screen = sys.argv[1]
Line 27 open the twitter search URL and the result will be shown in json format.
url = urllib2.urlopen("http://search.twitter.com/search.json?q="+screen)
Line 30 converts the data and loads it into json
data = json.load(url)
On Line 33 we print out the number of tweets
print len(data), "tweets"
From Line 38 we start to parse the tweets from the result
for tweet in data["results"]: print tweet["text"]
The last thing we do in this script is to get the status and print out the contents (Line 42)
for status in data['results']: print "(%s) %s" % (status["created_at"], status["text"])
Go through the script line by line to see what it does. Make sure to look at it, and try to understand it.