2017-08-02 7 views
0

私はTwitter APIに苦労しています。以下のコードを使用して多数のつぶやきを取得しますが、毎回別の数のつぶやきを取得します実際にいくつかのparametresに依存:LANG、人気/最近、フィルター、等。)sqliteとrowcountを使ってforループ内のレコードを計算する方法

for tweet in tweepy.Cursor(api.search,q=str(keyword), 
     result_type='recent', lang="en").items(num_tweets): 

ここでの目標は、この例では、それは50と10は、中)ツイッターから要求されます(つぶやきの数を持つことです

私はこのコードを使用していますが、2つのifステートメントを含める最良の方法であるかどうかわからないし、どこに空を置くべきかわからないリスト..私のコードはわずか9ツイートやstoredリストは、望ましい結果に到達することはありません見つけたらどう

num_tweets = 50 
    final = tweet.text 

    words = len(final.split()) # To delete short tweets 
    nline = keyword,final  # Values for db 

    if (words > 15): 
     cursor.execute('INSERT OR IGNORE INTO tweets (keyword, tweet) VALUES (?, ?)', (nline)) 
     conn.commit() 

     rows_affected=cursor.rowcount 
     # print (rows_affected) 

     if (rows_affected == 1): 
      stored = [] 
      exact = len(stored) 
      stored.append(final) 
      print ('Tweet Stored') 
      print (len(stored)) 


     else: 
      pass 

      if (exact < 10): 
       # print (exact) 
       continue 
      else: 
       break 

=<のようなものを使うべきですか?

私の試みは、私が解決策たデシベルコードにINSERTLIMIT 10を追加することです...とrowcount

+0

をコードを実行し、実際の出力**と必要な出力を提供してください。 – quamrana

+0

@quamrana申し訳ありませんが、実際には動作しています(構文エラーはありません)。しかし、9つのつぶやきだけがdbに保存されています。 – Blacksun

+0

あなたは 'exact'への割り当てを失いましたが、すべての反復で合計で保存するツイートの数をカウントします。 – quamrana

答えて

0

を使用して:あなたはあなたができるように、構文エラーを整理する必要があります

num_tweets = 50 
keyword = "Aventador" 

stored = [] 
exact = len(stored) 

for tweet in tweepy.Cursor(api.search,q=str(keyword), result_type='recent', lang="en").items(num_tweets): 
    final = tweet.text 

    words = len(final.split()) 
    nline = keyword,final 
    all.append(final) 

    if (words > 15): 
     rows_affected=cursor.rowcount 
     cursor.execute('INSERT OR IGNORE INTO tweets (keyword, tweet) VALUES (?, ?)', (nline)) 
     conn.commit() 

     # print (rows_affected) 

     if (rows_affected == 1): 
      stored.append(final) 
      print ('Tweet Stored')   
     else: 
      pass 

    if (len(stored) < 10): 
     print ('Continue') 
     continue 
    else: 
     print ('Script Break!') 
     break 

print (' ') 
print ('Number of Tweets fetched:') 
print (len(all)) 

print (' ') 
print ('Stored Tweets:') 
print (len(stored)) 
+0

最後にあなたがしたことは、if文とあまり関係がなく、 'stored = []'をループの外に置くことに関するものでした。 – quamrana

+0

@quamranaはい、多くの変数で作業しています。ありがとうbtw。 – Blacksun

関連する問題