【发布时间】:2017-11-15 01:19:53
【问题描述】:
我正在尝试挖掘 WomensMarch 的 Twitter 时间线上的每一条推文。
我一直在尝试使用 Tweepy 和 Python 3.x,但我似乎无法挖掘超过 3219 条推文。有什么方法可以挖掘 Twitter 上指定用户自创建帐户以来曾经转发或发过推文的 /every/ 推文?
这是我目前使用的代码:
import pandas as pd
import tweepy
from tweepy import OAuthHandler
import time
consumer_key = "--"
consumer_secret = "--"
access_token = "--"
access_secret = "--"
authHandler = OAuthHandler(consumer_key, consumer_secret)
authHandler.set_access_token(access_token, access_secret)
twitterAPI = tweepy.API(authHandler, wait_on_rate_limit=True, wait_on_rate_limit_notify=True)
womensMarchTwitter = twitterAPI.get_user('womensmarch')
minedTwitterDataFrom_womensMarchTwitter = pd.DataFrame(columns=["Tweet Text", "Tweet Created On"])
def MineTimelineData(idToMine):
cursor = tweepy.Cursor(twitterAPI.user_timeline, id=idToMine)
while(tweepy.Cursor(twitterAPI.user_timeline).items() != None):
try:
for page in cursor.pages():
for tweet in page:
yield tweet
except tweepy.RateLimitError:
print("Rate limit reached! Waiting 15 minutes...")
time.sleep(60 * 15) #wait 15 minutes (900 seconds)
minedData = MineTimelineData(womensMarchTwitter.id)
numberOfTweetsMined = 0
for tweet in minedData:
print(tweet.text)
print("Posted on: ", tweet.created_at)
minedTwitterDataFrom_womensMarchTwitter.loc[numberOfTweetsMined, "Tweet Text"] = tweet.text
minedTwitterDataFrom_womensMarchTwitter.loc[numberOfTweetsMined, "Tweet Created On"] = tweet.created_at
numberOfTweetsMined = numberOfTweetsMined + 1
minedTwitterDataFrom_womensMarchTwitter.to_csv(r"PATH")
print(numberOfTweetsMined)
print("\n \n \n Finished Mining Tweets!")
【问题讨论】:
-
没什么大不了的,但从术语上讲,听起来您正在尝试“获取”。 “挖掘”通常是指在数据中找到某种洞察力,比如表达了什么情绪。 :)
-
@Chet,啊,其实我不知道。谢谢提供信息! :D
标签: python python-3.x tweepy