通过Python在一天中的特定时段播放推文

时间:2016-12-13 02:31:47

标签: python twitter web-scraping

我想知道是否有人可以帮我修改我当前的代码,根据每天的特定时间来删除推文。我目前正在使用https://github.com/Jefferson-Henrique/GetOldTweets-python从1周前开始发送推文。我下载了他所有的文件,pip安装了所有的软件包。我尝试从11月9日到12月7日每天7:30-8:30(19:30-20:30)修改推文,并将这些推文保存在csv中。但是,我不能让它为我刮掉推文。这就是我修改脚本的方法:

import got
import csv
from unidecode import unidecode
import datetime

# Based on his docs, it looks like you need to do something like this
tweetCriteria = got.manager.TweetCriteria().setQuerySearch('Google').setSince("2016-11-09").setUntil("2016-12-07")
# All the tweets
print "Getting Tweets"
tweets = got.manager.TweetManager.getTweets(tweetCriteria)

BeginHour = 19
EndHour = 20
Minutes = 30

print "\nWriting CSV File"
n_written = 0
with open('tweets3.csv', 'w') as csvFile:
    TweetWriter = csv.writer(csvFile, delimiter=',')
    TweetWriter.writerow(['user','SentimentText','Date'])

    for tweet in tweets:
        if (tweet.date.hour > BeginHour and tweet.date.minute > Minutes) or \
       (tweet.date.hour < EndHour and tweet.date.minute < Minutes):
            user = unidecode(tweet.username)
            txt = unidecode(tweet.text)
            dt = tweet.date

            print "\nAdding Tweet to CSV File"
            TweetWriter.writerow([user, 0, txt, dt])

            n_written += 1
            print "There are now {} tweets in the CSV".format(n_written)

我非常感谢任何帮助

1 个答案:

答案 0 :(得分:0)

此外,您的条件为x > 10 or x < 12,基本上会说明这些条件中的任何一个是True然后继续。因此,即使15条件也是如此,因为它大于10

更好的条件是

 for tweet in tweets:
     if (tweet.date.hour > BeginHour and tweet.date.minute > Minutes) and \
   (tweet.date.hour < EndHour and tweet.date.minute < Minutes):

而不是or。您可以根据数据执行任何操作。