使用Tweepy获取Twitter数据并存储到CSV文件中。

5

我是Python、Twitter和Tweepy的新手。我成功地从Twitter上获取了数据,但现在我想将它存储到CSV文件中。

我的代码如下:

#!/usr/bin/python

import tweepy

auth = tweepy.auth.OAuthHandler('XXXXXX', 'XXXXXXX'
auth.set_access_token('XXX-XXX', 'XXX'

api = tweepy.API(auth)
for tweet in tweepy.Cursor(api.search,
                           q="google",
                           since="2014-02-14",
                           until="2014-02-15",
                           lang="en").items():
    print tweet.created_at, tweet.text

这会在CLI上打印数据,但我希望它输出到CSV文件。我尝试了几个不同的选项,但只输出了第一条推文而不是所有推文。

2个回答

13

这就可以完成工作了!

我建议你使用Python的csv。在你的循环中打开文件并像这样写入:

#!/usr/bin/python
import tweepy
import csv #Import csv
auth = tweepy.auth.OAuthHandler('XXXXXX', 'XXXXXXX')
auth.set_access_token('XXX-XXX', 'XXX')

api = tweepy.API(auth)

# Open/create a file to append data to
csvFile = open('result.csv', 'a')

#Use csv writer
csvWriter = csv.writer(csvFile)

for tweet in tweepy.Cursor(api.search,
                           q = "google",
                           since = "2014-02-14",
                           until = "2014-02-15",
                           lang = "en").items():

    # Write a row to the CSV file. I use encode UTF-8
    csvWriter.writerow([tweet.created_at, tweet.text.encode('utf-8')])
    print tweet.created_at, tweet.text
csvFile.close()

非常感谢,这正是我在寻找的!输出格式不太好,我想每行都显示日期/时间和推文,这可能吗? - user3325317
太好了!在CSV文件中,首先是日期和时间(Y-m-d H:M:S),然后是推文。您想要另一种格式的日期/时间吗? - Royendgel Silberie
抱歉,日期/时间的格式是完美无缺的。但当它输出到CSV文件时,它没有用制表符或其他分隔符进行分隔,显得相当混乱。理想情况下,我希望格式如下:列1, 列2 日期/时间, 推文 - user3325317
好的,你可以像这样将制表符作为分隔符传递给csv writer:delimiter=' '。 将这一行代码更改为:csvWriter = csv.writer(csvFile, delimiter=' ')。 - Royendgel Silberie
4
对我来说CSV文件是空的。 - Martin Erlic
嗨...我不太理解循环。你能解释一下循环中发生了什么以及我的代码会去哪里吗?我正在遵循这个博客:http://adilmoujahid.com/posts/2014/07/twitter-analytics/ - Zaira Zafar

-2

您实际上可以在另一个文件中运行程序并打印输出。 前往CMD并键入
python file.py > newFile.py
来自file.py的输出将被读取到newFile.py中


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接