我尝试使用Twitter的Streaming API使用sqlite3将推文保存到数据库。问题是我的数据库回来了。我使用DB Browser for SQLIte检查架构,表和列是否存在,但没有任何列的值。有什么想法吗?
#create sql table
conn = sqlite3.connect('twitter_one5.db')
c = conn.cursor()
c.execute('''CREATE TABLE tweets
(coordinates integer,
place text)''')
conn.commit()
conn.close()
# open connection
conn = sqlite3.connect('twitter_one5.db')
c = conn.cursor()
创建一个类来处理将推文信息插入数据库:
class Tweet():
# data from tweet
def __init__(self, coordinates, place):
self.coordinates = coordinates
self.place = place
# insert data from tweet into DB
def insertTweet(self):
c.execute("INSERT INTO tweets (coordinates, place) VALUES(?, ?)",
(self.coordinates, self.place))
conn.commit()
使用Streaming API创建一个tweet侦听器:
class listener(tweepy.StreamListener):
def on_status(self, status):
tweet_data = Tweet(status.coordinates, status.place)
tweet_data.insertTweet()
print('inserted')
创建监听器实例并过滤关键字:
l = listener()
stream = tweepy.Stream(auth, l)
stream.filter(track=['twitter'])