私は(ため息をついて)最終的に機能するスクリプトを完成させました。ツイッターでキーワード検索。結果は、キーワード、Tweet、Lat、Lon (場所) の 4 つの列を含む csv に書き込まれます。私が使用しているコードは次のとおりです。
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 分ごとに実行したいのですが、重複を書き換えます。次のコードを使用して重複を削除しようとしましたが、2 つのことが起こります。resutls2.csv は空白で、csv を開こうとするとロックされており、読み取り専用で表示する必要があります。f1.close()、writer.close() などを試しましたが、「csv.reader」オブジェクトには属性 close がないと表示されます。
私の最大の懸念は、新しい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()