【问题标题】:How to exclude re-tweets in my twitter steam using tweepy如何使用 tweepy 在我的推特蒸汽中排除转发推文
【发布时间】:2021-10-03 23:47:23
【问题描述】:

请在 tweepy 方面寻求帮助。

我正在尝试删除我的信息流中转发的条目,但运气不佳。我制作的脚本试图从特定用户(在此示例中为@olympics)流式传输推文,但最终主要获得转发。

代码是:

#!/usr/bin/env python
from tweepy import Stream, OAuthHandler
from tweepy.streaming import StreamListener
import time
import json


# Add your own
access_token = ''
access_token_secret = ''
consumer_key = ''
consumer_secret = ''


class listener(StreamListener):
    def on_data(self, data):
    
    # Twitter returns data in JSON format - we need to decode it first
        tweet = json.loads(data)
        print('@%s: %s' % (tweet['user']['screen_name'], tweet['text'].encode('ascii', 'ignore')))
        with open('fetched_tweets.csv','a') as tf:
            tf.writelines('%d,\"%s\",%s,%d,%d,\"%s\"\n' % (tweet['id'], tweet['created_at'], tweet['user']['screen_name'],
                                                           tweet['user']['followers_count'], tweet['user']['friends_count'],
                                                           tweet['text'].encode('ascii','ignore')#.replace('\n',' ', 100).replace(',',' ', 100)
                                                           ))
        return True

    def on_error(self, status_code):
        print(status_code)


auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
twitterStream = Stream(auth, listener())
twitterStream.filter(follow=["52422878"], is_async=True)

Sample output is

@FanaiMahriati:b'@Olympics @ittfworld' @ArnHub:b'RT @Olympics:#NED 的 Tom Dumoulin 在#CyclingRoad 男子个人计时赛中获得#silver。\n\n#StrongerTogether | #东京2020 | @UCI_cy' @ftw_cdhn:b'RT @Olympics:#CyclingRoad 男子个人计时赛中#SLO 的@rogla 获得#gold!\n\n#StrongerTogether | #东京2020 | @UCI_cycling' @ftw_cdhn:b'RT @Olympics:#NED 的 Tom Dumoulin 在#CyclingRoad 男子个人计时赛中获得#silver。\n\n#StrongerTogether | #东京2020 | @UCI_cy' @Real_rafel20:b'RT @Olympics:#NED 的 Tom Dumoulin 在#CyclingRoad 男子个人计时赛中获得#silver。\n\n#StrongerTogether | #东京2020 | @UCI_cy' @tezol_mutlu:b'@Olympics Bravo Tom,Bravo Dumoulin。恭喜。'

非常感谢任何帮助和建议!提前致谢!

【问题讨论】:

    标签: python twitter streaming tweepy


    【解决方案1】:

    只需检查推文的转发状态:

    class listener(StreamListener):
        def on_data(self, data):
            tweet = json.loads(data)
    
            # If the returned tweet object is NOT a retweet:
            if not tweet['retweeted_status']:
                print('@%s: %s' % (tweet['user']['screen_name'], tweet['text'].encode('ascii', 'ignore')))
                with open('fetched_tweets.csv','a') as tf:
                    tf.writelines('%d,\"%s\",%s,%d,%d,\"%s\"\n' % (tweet['id'], tweet['created_at'], tweet['user']['screen_name'],
                                                                tweet['user']['followers_count'], tweet['user']['friends_count'],
                                                                tweet['text'].encode('ascii','ignore')#.replace('\n',' ', 100).replace(',',' ', 100)
                                                                ))
                return True
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-03
      • 2018-06-05
      • 2013-10-20
      • 2020-03-15
      相关资源
      最近更新 更多