在推裡取得某個列表的最新推文


由於某種特別的取求.所以必需在用戶的 Twitter 帳戶裡面.
取得這個用戶中被指定的列表內容.而這內容則為最新推文
記錄一下用 Tweepy 實測的代碼

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
#!/usr/bin/python
# -*- coding: utf-8 -*-

import tweepy

class Taut(object):

def __init__(self, consumer_key=None, consumer_secret=None, access_token_key=None, access_token_secret=None):
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token_key, access_token_secret)

self.api = tweepy.API(auth)

def show_list(self):
r = self.api.lists_all()

for item in r:
print("{0}, {1}, {2}".format(item.name, item.slug, item.id_str))

def show_target_list(self, list_id, slug):
r = self.api.list_timeline(list_id=list_id, slug=slug)

for item in r:
print "> ID : {0}".format(item.id)
print "> Name : {0}".format(item.user.name.encode("UTF-8"))
print "> ScreenName: {0}".format(item.user.screen_name.encode("UTF-8"))
print "> Text:\n{0}".format(item.text.encode("UTF-8"))

if hasattr(item, 'extended_entities'):
extended_entities = item.extended_entities

if 'media' in extended_entities:
print "> Media:"
for media in extended_entities['media']:
print "--- {0}".format(media['media_url'])

print "======"

def single_entities(self, item):
entities = item.entities

print entities

if 'urls' in entities:
print "------urls"
print len(entities['urls'])

for url in entities['urls']:
print "- {0}".format(url['url'])

if 'media' in entities:
print "------media"
print len(entities['media'])

for media in entities['media']:
print "- {0}".format(media['media_url'])

print "++++++++++++++++++++++++++"

if __name__ == "__main__":
taut = Taut(
consumer_key="YOU_KEY",
consumer_secret="YOU_KEY",
access_token_key="YOU_KEY",
access_token_secret="YOU_KEY"
)

taut.show_list()
taut.show_target_list(LIST_ID, SLUG)
taut.show_target_list(LIST_ID, SLUG)