Можно ли добавить несколько сложных условий в twitterStream.filiter? - PullRequest
0 голосов
/ 12 сентября 2018

Этот код сканирует твиты, содержащие ключевое слово, и записывает координаты твитов во вновь созданном файле CSV. Можно ли добавить несколько условий, таких как приведенные ниже, изменив "twitterStream.filter (track = [" food "])"?

keywords = ‘food'
limit = 1000
near = 'Detroit MI'
within = '15km'
since = '2018-06-01'
until = '2018-06-05'
lang = ‘en'

Я знаю, что фильтр-запрос может содержать несколько условий, но я не уверен, что он может также включать сложные условия, такие как место, дата начала или дата окончания. Также мне интересно, можно ли использовать filterquery на python. Кроме того, этот код создает файл CSV ничего, кроме пустого файла, хотя при запуске он хорошо печатает координаты твитов.

вот полный код ниже.


import json
from tweepy import Stream
from tweepy import OAuthHandler
from tweepy.streaming import StreamListener

consumer_key=".."
consumer_secret=".."
access_token=".."
access_secret=".."


file = open("result.csv", "w")
file.write("X,Y\n")

data_list = []
count = 0

class listener(StreamListener):

   def on_data(self, data):
       global count

       #How many tweets you want to find, could change to time based
       if count <= 2000:
           json_data = json.loads(data)

           coords = json_data["coordinates"]
           if coords is not None:
              print(coords["coordinates"])
              lon = coords["coordinates"][0]
              lat = coords["coordinates"][1]

              data_list.append(json_data)

              file.write(str(lon) + ",")
              file.write(str(lat) + "\n")

              count += 1
           return True
       else:
           file.close()
           return False

   def on_error(self, status):
       print(status)

auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_secret)
twitterStream = Stream(auth, listener())
twitterStream.filter(track=["food"])

1 Ответ

0 голосов
/ 14 сентября 2018

Twitter позволяет добавлять в фильтр только несколько параметров:

  • с разделителями
  • stall_warnings
  • filter_level
  • language
  • следовать
  • отслеживать
  • местоположений
  • считать с (устарело)
  • ответов (устарело)
  • stringify_friend_id (устарело)

https://developer.twitter.com/en/docs/tweets/filter-realtime/guides/basic-stream-parameters

...