我试图从固定的加密货币列表中检索所有推文,但查询完全被破坏了。当我一次查找所有条款时,推文的总数明显低于我只查找1或2个关键字的时间。
但即使我得到了所有结果,还有第二个问题:脚本永远不会完成执行。该代码应该在前天查找所有推文,从23:59:59获取数据并向后返回00:00:00,此时它应该停止。
相反,它确实从23:59:59开始,但在一个循环结束,回到这个时间并检索相同的推文。有时它会到达00:00:00,但通常会在23:59:59再次开始之前进入随机时间(例如14:23:57,09:47:12),具体取决于特定日期的推文数量。
这是我的代码(我使用的是python 3.6):
import tweepy
import csv
import datetime
from tweepy import OAuthHandler
from datetime import timedelta
consumer_key = 'XXX'
consumer_secret = 'XXX'
access_token = 'XXX'
access_secret = 'XXX'
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
api = tweepy.API(auth, wait_on_rate_limit=True)
today_string = datetime.datetime.today().strftime('%d%b%Y')
d1 = (datetime.datetime.today() - timedelta(days=1)).strftime("%Y-%m-%d")
d2 = (datetime.datetime.today() - timedelta(days=2)).strftime("%Y-%m-%d")
csvFile = open('cryptos' + today_string + '.csv', 'w+')
csvWriter = csv.writer(csvFile)
# This is the regular query
query = 'Ethereum OR Cardano OR #XVG OR $XVG OR #Verge' \
'#ADA OR $ADA OR $EOS OR #EOS #ETH OR $ETH OR' \
'#XEM OR $NEM OR MaidSafeCoin OR Zcash OR Zcoin' \
'#ZEC OR $XZC OR #MAID OR $MAID OR Monero OR #XMR OR $XMR'
# When I test with just two terms (an example below) the results are significantly higher
#query = "#XVG OR $XVG"
for tweet in tweepy.Cursor(api.search,q=query ,count=100,
since=d2, until=d1, lang="en").items():
print (tweet.created_at, tweet.user.name, tweet.text)
csvWriter.writerow([tweet.created_at, tweet.user.screen_name,
tweet.text.encode('utf-8')])
csvFile.close()
非常感谢任何帮助!