Пытается создать скрипт python, который будет datamine twitter, но Im не имеет удачи! Я не знаю, что я делаю неправильноMongoDB Python Twitter потоковое не сохранение в базу данных
from pymongo import MongoClient
import json
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener
import datetime
# Auth Variables
consumer_key = "INSERT_KEY_HERE"
consumer_key_secret = "INSERT_KEY_HERE"
access_token = "INSERT_KEY_HERE"
access_token_secret = "INSERT_KEY_HERE"
# MongoDB connection info
connection = MongoClient('localhost', 27017)
db = connection.TwitterStream
db.tweets.ensure_index("id", unique=True, dropDups=True)
collection = db.tweets
# Key words to be tracked, (hashtags)
keyword_list = ['#MorningAfter', '#Clinton', '#Trump']
class StdOutListener(StreamListener):
def on_data(self, data):
# Load the Tweet into the variable "t"
t = json.loads(data)
# Pull important data from the tweet to store in the database.
tweet_id = t['id_str'] # The Tweet ID from Twitter in string format
text = t['text'] # The entire body of the Tweet
hashtags = t['entities']['hashtags'] # Any hashtags used in the Tweet
time_stamp = t['created_at'] # The timestamp of when the Tweet was created
language = t['lang'] # The language of the Tweet
# Convert the timestamp string given by Twitter to a date object called "created"
created = datetime.datetime.strptime(time_stamp, '%a %b %d %H:%M:%S +0000 %Y')
# Load all of the extracted Tweet data into the variable "tweet" that will be stored into the database
tweet = {'id': tweet_id, 'text': text, 'hashtags': hashtags, 'language': language, 'created': created}
# Save the refined Tweet data to MongoDB
collection.insert(tweet)
print(tweet_id + "\n")
return True
# Prints the reason for an error to your console
def on_error(self, status):
print(status)
l = StdOutListener(api=tweepy.API(wait_on_rate_limit=True))
auth = OAuthHandler(consumer_key, consumer_key_secret)
auth.set_access_token(access_token, access_token_secret)
stream = Stream(auth, listener=l)
stream.filter(track=keyword_list)
Вот сценарий, который у меня есть до сих пор. Я попытался выполнить несколько поисковых запросов Google, и я сравнил то, что у меня есть, и не могу найти источник проблемы. Он запускается и подключается к MongoDB, у меня есть правильная база данных, но ничего не помещается в базу данных. У меня есть немного кода отладки, где он печатает идентификатор твита, но он просто печатает 401 снова и снова через 5-10 секунд. Я пробовал некоторые базовые примеры, которые я нашел во время поиска, что я хотел сделать, и до сих пор ничего не произошло. Я думаю, что это может быть проблема с подключением базы данных? вот несколько изображений выполняемой базы данных. Любые идеи были бы весьма благодарны, спасибо!