Tweepy-排除转发

发布于 2021-01-29 15:05:58

最终目标是使用tweepy
API搜索来关注主题(即docker)并排除转发。我看过其他提到除转发以外的话题,但它们完全适用。我试图将我学到的东西合并到下面的代码中,但是我相信“如果没有”的代码位置错误。任何帮助是极大的赞赏。

#!/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()

错误信息

关注者
0
被浏览
44
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    所以tweet是一个对象不是一个JSON或快译通,你不应该像访问tweet['retweeted']tweet['text']

    而是使用以下行:

    if not tweet.retweeted:
    

    或为您的用例:

    if (not tweet.retweeted) and ('RT @' not in tweet.text):
    

    在API级别进行过滤

    q='your_search -filter:retweets'

    这里阅读更多内容。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看