如何使用Twitter流API?

1 投票
1 回答
2049 浏览
提问于 2025-04-16 06:41
stream.filter(locations=[-122.75,36.8,-121.75,37.8,-74,40,-73,41],track=["twitpic"])

这个可以用。不过,它不是“与”的意思,而是“或”的意思。这行代码获取的是位置或关键字。那我该怎么才能让它变成“与”的意思呢?

这是我正在使用的库的代码:

def filter(self, follow=None, track=None, async=False, locations=None):
        self.parameters = {}
        self.headers['Content-type'] = "application/x-www-form-urlencoded"
        if self.running:
            raise TweepError('Stream object already connected!')
        self.url = '/%i/statuses/filter.json?delimited=length' % STREAM_VERSION
        if follow:
            self.parameters['follow'] = ','.join(map(str, follow))
        if track:
            self.parameters['track'] = ','.join(map(str, track))
        if locations and len(locations) > 0:
            assert len(locations) % 4 == 0
            self.parameters['locations'] = ','.join(['%.2f' % l for l in locations])
        self.body = urllib.urlencode(self.parameters)
        self.parameters['delimited'] = 'length'
        self._start(async)

https://github.com/joshthecoder/tweepy/blob/master/tweepy/streaming.py

1 个回答

2

http://dev.twitter.com/pages/streaming_api_methods#locations

边界框就像是逻辑上的“或”。你可以把一个地点参数和跟踪参数结合在一起,但要注意,所有的条件都是用“或”连接的。所以,如果你写的查询字符串是 track=twitter&locations=-122.75,36.8,-121.75,37.8,这样就会匹配到任何包含“Twitter”这个词的推文(即使不是地理位置相关的推文),或者是来自旧金山地区的推文。

...

你可以通过把多个经纬度对连接在一起,来指定多个边界框。例如:locations=-122.75,36.8,-121.75,37.8,-74,40,-73,41 这样就会跟踪来自旧金山和纽约市的推文。

想了解更多信息,可以查看完整的文档。

撰写回答