Tweepy 只返回 1 条推文

Tweepy only returning 1 tweet

我有一个 python 脚本,用于从 Twitter 上抓取推文并将它们附加到 csv 文件中。我正在使用 tweepy 模块,但它只返回 1 条推文。这是我的 for 循环的问题,还是调用 twitter API 的问题?

for status in tweepy.Cursor(twitterapi.search,q="labour party",since="2018-05-01", until="2018-05-10").items(200):
    if 'RT' not in status.text:
      with open('C:/Users/User/Desktop/twittersentiment.csv', 'wb') as f:
               w = csv.writer(f)  
               favourites = status.user.favourites_count
               location = status.user.location.encode('utf8')
               tweet_text = ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)"," ",status.text.encode('utf8')).split())

               date = status.created_at.strftime('%m/%d/%Y')
               a = [location]
               b=[favourites]
               c=[tweet_text]
               d=[date]
               zip(a,b,c,d)
               w.writerow(zip(a,b,c,d))

您应该在开始迭代之前打开文件 tweepy.Cursor 否则光标的每次迭代都会创建一个包含一个条目的新文件,并覆盖之前的文件。

with open('C:/Users/User/Desktop/twittersentiment.csv', 'wb') as f:
    w = csv.writer(f)  
    for status in tweepy.Cursor(twitterapi.search,q="labour party",since="2018-05-01", until="2018-05-10").items(200):
        if 'RT' not in status.text:
            favourites = status.user.favourites_count
            location = status.user.location.encode('utf8')
            tweet_text = ' '.join(re.sub("(@[A-Za-z0-9]+)|([^0-9A-Za-z \t])|(\w+:\/\/\S+)"," ",status.text.encode('utf8')).split())

            date = status.created_at.strftime('%m/%d/%Y')
            a = [location]
            b=[favourites]
            c=[tweet_text]
            d=[date]
            zip(a,b,c,d)
            w.writerow(zip(a,b,c,d))