· 7 years ago · Dec 13, 2017, 11:52 PM
1import twitter
2import json
3import urllib2
4
5WORLD_WOE_ID = 1
6US_WOE_ID = 23424977
7
8def authenticate():
9 CONSUMER_KEY = 'secret'
10 CONSUMER_SECRET = 'supersecret'
11 OAUTH_TOKEN = 'mytoken'
12 OAUTH_TOKEN_SECRET = 'mytokensecret'
13
14 auth = twitter.oauth.OAuth(OAUTH_TOKEN, OAUTH_TOKEN_SECRET,
15 CONSUMER_KEY, CONSUMER_SECRET)
16 return twitter.Twitter(auth=auth)
17
18def get_trends(twitter_api, where=US_WOE_ID, full_records=False):
19 trends = twitter_api.trends.place(_id=where)
20 if full_records:
21 return trends
22 else:
23 return [t for t in trends[0]['trends']]
24
25if __name__ == '__main__':
26 twitter_api = authenticate()
27 if twitter_api:
28 print "Successfully authenticated."
29 else:
30 exit(1)
31 query = "#Python"
32 search_results = twitter_api.search.tweets(q=query, count=1000)
33 we_care_about = ["text", "favorite_count", "created_at"]
34
35 print json.dumps(search_results["search_metadata"], indent=1)
36
37 status_file = open("statuses.json", "w")
38 status_file.write('{\n')
39 while True:
40 statuses = search_results["statuses"]
41 for status in statuses:
42 mini_dict = {}
43 [mini_dict.setdefault(key, status[key]) for key in we_care_about]
44 json.dump(mini_dict, status_file, indent=1, sort_keys=True)
45 status_file.write(',')
46 next_results = search_results["search_metadata"].get("next_results")
47 if not next_results:
48 break
49 kwargs = dict([ kv.split('=') for kv in next_results[1:].split("&") ])
50 search_results = twitter_api.search.tweets(**kwargs)
51 status_file.write('\n}')
52 status_file.close()
53 """
54 trends = get_trends(twitter_api, full_records=False)
55 trend_file = open("trends.json", "w")
56 print "Current trends:", json.dumps(trends, indent=1)
57 print "Adding trends to trend_file.",
58 json.dump(trends, trend_file, indent=1, sort_keys=True)
59 trend_file.close()
60 """