2016-08-10 15 views
7

究極の目標は、トピック(ドッカー)とEXCLUDEリツイートに焦点を当てるためにtweepy api検索を使用することです。私はretweetsを除外する言及した他のスレッドを見てきましたが、それらは完全に適用可能でした。私が学んだことを以下のコードに組み込もうとしましたが、 "そうでなければ"コードの部分が間違っていると思います。どんな助けでも大歓迎です。Tweepy - リッツを除外

#!/usr/bin/python 
import tweepy 
import csv #Import csv 
import os 

# Consumer keys and access tokens, used for OAuth 
consumer_key = 'MINE' 
consumer_secret = 'MINE' 
access_token = 'MINE' 
access_token_secret = 'MINE' 

# OAuth process, using the keys and tokens 
auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 
auth.set_access_token(access_token, access_token_secret) 


api = tweepy.API(auth) 
# Open/Create a file to append data 
csvFile = open('docker1.csv', 'a') 
#Use csv Writer 
csvWriter = csv.writer(csvFile) 


ids = set() 
for tweet in tweepy.Cursor(api.search, 
        q="docker", 
        Since="2016-08-09", 
        #until="2014-02-15", 
        lang="en").items(5000000): 
if not tweet['retweeted'] and 'RT @' not in tweet['text']: 
    #Write a row to the csv file/ I use encode utf-8 
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8'), tweet.favorite_count, tweet.retweet_count, tweet.id, tweet.user.screen_name]) 
    #print "...%s tweets downloaded so far" % (len(tweet.id)) 
    ids.add(tweet.id) # add new id 
    print ("number of unique ids seen so far: {}",format(len(ids))) 
csvFile.close() 

Error Message

+0

エラーが表示されますか?コード最適化を探しているだけですか? – harshil9968

+0

@ harshi9968複数のerrosを取得しています...間違った構文、 'Status'オブジェクトに属性がありません '--getitem--' ...他の投稿のリサーチから ' 'ツイート['テキスト ']ではない私がしたいものですが、私が必要なものを得るためにコードに配置する場所を正確にはわからない – hansolo

+0

エラーのスクリーンショットを投稿できますか? – harshil9968

答えて

7

のでtweetが目的ではないJSONや辞書である、あなたはtweet['retweeted']tweet['text']

のようにアクセスべきではない代わりに、このラインを使用します。

if not tweet.retweeted: 

Orのをあなたのユースケース:

受け入れ答えに加え
+0

非常に便利です。ありがとうございました。これを補うための簡単な質問...もしif文に追加のパラメータを渡したければ、それは可能でしょうか?たとえば、tweet.favorite_countまたはtweet.retweet_countが> 0のつぶやきだけを持ちたい場合は、 'if(not tweet.retweeted)と( 'RT @' not tweet.text )と(tweet.favorite_count> 0): ' – hansolo

+0

はい、それが助けになったら、答えとアップヴォートをあてにしてください。 – harshil9968

9

if (not tweet.retweeted) and ('RT @' not in tweet.text): 
、私はあなたにも結果に表示されてから最もリツイートを防ぐことができます q="docker"から q="docker -filter:retweets"

これに、あなたが作る要求を変更することをお勧めします。

+0

これは私のために働いた。 Twitterのドキュメントごとに他の標準演算子でも同じことができます:https://developer.twitter.com/en/docs/tweets/rules-and-filtering/overview/standard-operators – user2467163