2017-01-16 16 views
0

私はtweepy採掘作業を行っていますが、かなりの数のつぶやきを得るのにかなり時間がかかることに気付きました。おおよその見積もりは約3-4時間で3000個のつぶやきになります - 私は2日間で100万を目指しています。同様の質問では「あなたのマシンだけ」と言われていましたが、より具体的な答えを期待していました。とにかくTwitterのマイニング速度を上げるには?

高度なサーバー接続サービスを使用するとスピードアップできますか?申し訳ありませんが、コンピュータサイエンスの背景はありません。以下は私のコードです:

from tweepy import Stream 
from tweepy.streaming import StreamListener 

class MyListener(StreamListener): 

def on_data(self, data): 
    try: 
     with open('python2.json', 'a') as f: 
      f.write(data) 
      return True 
    except BaseException as e: 
     print(Error) 
    return True 

def on_error(self, status): 
    print(status) 
    return True 

twitter_stream = Stream(auth, MyListener()) 
twitter_stream.filter(track=['#happy']) 

ありがとう!

+0

"新しい"つぶやきだけが必要ですか、古いものも良いですか? – Giordano

+0

あなたはそれを解決しましたか? – Giordano

+0

はい、私は実際に古いツイートをもっと必要としましたが、私のストリーム機能がライブフィードしか得ていないことを認識しませんでした。私は以下のソリューションのバリエーションを実装し、優れた結果を得ています。ありがとう、トン! – Michael

答えて

0

あなたはStream関数を使用しています。したがって、あなたがハッシュタグ#happyでリアルタイムのつぶやきを取得しているとしましょう。あなたがデータを得ることができる速さはまた、このハッシュタグで今や何人の人々がtweetingしているかによっても決まります。
あなたの質問から私がよく理解していれば、あなたはいくつかの分析のためにつぶやきを得るつもりです。はいの場合は、古いツイートを使用できると思います。これを行うには
、次の2つの異なった方法に従うことができます。

  1. 使用tweepy API(ストリーミングされていない)
  2. 使用GetOldTweets-pythonライブラリ

許可を取得するので、私はあなたが二いずれかを使用することをお勧めレート制限のないつぶやき

あなたはGetOldTweets-pythonのライブラリとあなたの質問に行うことを試みている何をすべきかの例があり、次のとおりです。このコードで

tweetCriteria = got3.manager.TweetCriteria().setQuerySearch('#happy').setSince("2016-05-01").setMaxTweets(3000) 
tweets = got3.manager.TweetManager.getTweets(tweetCriteria) 

for idx, tweet in enumerate(tweets): 
    data[idx] = tweet.text 

with open('python2.json', 'w') as outfile: 
    json.dump(data, outfile, indent=4) 

が、私は夜12時02分にハッシュタグ#happyで3000件のツイートを得ました: 58.617514。

Hereは、完全で実用的な例です。

お気軽に私に連絡してください。

私に知らせてください。

+0

優秀!このソリューションは機能します!ありがとう、ジョルダーノ。 – Michael

+0

歓迎です;) – Giordano

関連する問題