我刚刚完成了一个(叹气)终于可以工作的脚本。它在 Twitter 上搜索关键字。将结果写入 csv 中,其中包含 4 列关键字、Tweet、Lat、Lon(位置)。我正在使用的代码是:
import tweepy
import csv
keywordList = ['McDonalds', 'Taco Bell', 'Burger King',]
for keyword in keywordList:
result = tweepy.api.search(q=keyword,rpp=1000,page=2, geocode= "34.085422,-117.900879,500mi" )
with open(r'C:\Temp\results.csv', 'a') as acsv:
w = csv.writer(acsv)
for tweet in result:
lat, lon = tweet.geo if tweet.geo else ('', '')
try:
a = tweet.geo['coordinates']
print a[0] , a[1]
print tweet.text
w.writerow((keyword, tweet.text, a[0] , a[1]))
except:
pass
我想使用任务管理器或 python 每 5 分钟运行一次此搜索,但它会重写重复项。我打算使用以下代码删除重复项,但发生了两件事。resutls2.csv 是空白的,当我打开 csv 时,它被锁定,我必须以只读方式查看它。我尝试了 f1.close()、writer.close() 等,但它说“csv.reader”对象没有关闭属性。
我最大的担心是通过写入新的 csv 或在每次搜索时以某种方式删除并写入同一个表来避免重复。任何建议都非常感谢!
import csv
f1 = csv.reader(open(r'C:\Temp\results.csv', 'rb'))
writer = csv.writer(open(r'C:\Temp\results2.csv', 'wb'))
tweet = set()
for row in f1:
if row[1] not in tweet:
writer.writerow(row)
tweet.add( row[1] )
f1.close()
writer.close()