我一直试图使用Twitter API v2免费访问tweet,但我总是走进死胡同.这非常令人沮丧,因为我的代码没有像预期的那样工作.我一直收到属性错误的消息.我试着用谷歌搜索,但为这些代码片段提供的解决方案似乎不起作用,
以下是我收到的完整错误消息:
Traceback (most recent call last):
File "filepath\twitter.py", line 21, in <module>
class TweetStreamListener(tweepy.Stream):
AttributeError: module 'tweepy' has no attribute 'Stream'
如果任何人有使用Twitter API v2的经验,并且遇到过类似的问题,我们将非常感谢您的见解.提前感谢您的帮助!
import tweepy
import json
import csv
from kafka import KafkaProducer
api_key = 'x'
api_secret = 'y'
access_token = 'z'
access_token_secret = '&'
kafka_bootstrap_server = 'localhost:9092'
kafka_topic = 'twitter_data'
csv_output = 'filepath/twitter-data-from-api.csv'
kafka_producer = KafkaProducer(bootstrap_servers=kafka_bootstrap_server)
class TweetStreamListener(tweepy.Stream):
def on_status(self, status):
try:
tweet_id = status.id
tweet_text = status.text
tweet_created = status.created_at.strftime('%Y-%m-%d %H:%M:%S')
tweet_data = {
'id': tweet_id,
'text': tweet_text,
'created at': tweet_created
}
kafka_producer.send(kafka_topic,
json.dumps(tweet_data).encode("UTF-8"),
api_version=(3, 5, 0))
with open(csv_output, 'a', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
writer.writerows([[tweet_id, tweet_text, tweet_created]])
except Exception as e:
print(f"Error: {str(e)}")
def extract_data():
auth = tweepy.OAuthHandler(api_key, api_secret)
auth.set_access_token(access_token, access_token_secret)
api = tweepy.API(auth)
twitter_stream_listener = TweetStreamListener(api.auth, None)
stream = tweepy.Stream(auth=api.auth, listener=twitter_stream_listener)
stream.filter(['Key1', 'Key2', 'Key3'])
kafka_producer.close()
extract_data()